AWS CloudFormation UserData EC2 环境变量

Col*_*rk1 7 amazon-web-services aws-cloudformation

我正在使用 CloudFormation 开发基础设施。这是我自己的基础架构代码,如下所示。

 AWSRegionArch2AMI:
     us-east-1:
       HVM64: ami-0ff8a91507f77f867
       HVMG2: ami-0a584ac55a7631c0c
 ...
 ..
 .

 Resources:
 EC2Instance:
 Type: AWS::EC2::Instance
 Properties:
 InstanceType:
    Ref: InstanceType
  SecurityGroups:
  - Ref: InstanceSecurityGroup
  KeyName:
    Ref: KeyName
  UserData:
    Fn::Base64: !Sub |
      #!/bin/bash
      export MY_AMI_NAME=${ !GetAtt AWSRegionArch2AMI.us-east-1.HVM64 }

      echo $MY_AMI_NAME > $HOME/user_data.txt
Run Code Online (Sandbox Code Playgroud)

我想将变量设置为 user_data 文件,但它是空的,如何将环境变量放入我的用户数据字段中并在我自己的应用程序端使用它我该怎么做。

请帮忙 !

Ale*_*vey 10

尝试这个:

UserData:
  Fn::Base64: !Sub
    - |
      #!/bin/bash
      MY_AMI_NAME=${image_id}
      echo $MY_AMI_NAME > $HOME/user_data.txt
    - image_id: !GetAtt AWSRegionArch2AMI.us-east-1.HVM64
Run Code Online (Sandbox Code Playgroud)

解释:

  • export在 Bash 中的使用是使变量可用于子外壳 - “环境变量”。你在那里不需要它。

  • 请参阅文档以正确使用该!Sub功能。

  • 另请参阅相关的堆栈溢出答案。