【问题标题】:passing file to ec2 in cloud formation在云形成中将文件传递给 ec2
【发布时间】:2021-09-03 19:10:33
【问题描述】:

我有一个 cloudfromation 脚本,它创建一些 ec2 实例,然后将它们附加到 ELB。

我编写了一个 python 服务器脚本,希望在创建后立即在 ec2 上使用。 现在我要做的是在 cloudformation 脚本完成后,我使用 SCP 将脚本传递给 ec2 实例。

我想知道是否有办法在 cloudfromation 中执行此操作,可能在 UserData 下?

我应该指出我对云的形成非常陌生。我已经查看了文档,但还不能这样做。

[编辑] 我认为声明我有一个 deploy.sh 脚本来创建堆栈很重要。该脚本作为我的 python 服务器脚本位于 dame 目录中。我没有使用 AWS 控制台。

这是我在 cloudformation 脚本中的实例代码:

EC2Instance2:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: !Ref InstanceType
      SecurityGroupIds: 
        - !Ref InstanceSecurityGroup
      KeyName: !Ref KeyName
      ImageId: !Ref LatestAmiId
      UserData:
        Fn::Base64: 
          !Sub |
            #!/bin/bash
            sleep 20
            sudo apt-get update
            sudo apt-get install python3-pip -y
            sudo apt-get install python3-flask -y

【问题讨论】:

  • @Marcin 最后我克隆了 git repo,因为在我的情况下使用 s3 不是一个选项 - 它会大大延长整个过程。克隆是最好的选择。

标签: amazon-web-services amazon-ec2 amazon-cloudformation


【解决方案1】:

我想知道是否有办法在 cloudfromation 中执行此操作,可能在 UserData 下?

是的,UserData 就是这样做的方法。为此,您可以将文件存储在 S3 中。为此,您需要将 instance role 添加到具有 S3 权限的实例中。您将使用 AWS CLI 将文件从 S3 复制到实例。

【讨论】:

  • 所以你是说没有办法在用户数据中实际传递文件,而是从 s3 中检索它?
  • @ShaiB 如果不是很大,您可以在 userdata 中硬编码整个文件。
猜你喜欢
  • 2018-10-23
  • 2019-11-13
  • 2020-01-07
  • 2021-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-13
  • 2021-10-20
相关资源
最近更新 更多