amazon-web-services - CloudFormation 模板不选择 key 对

标签 amazon-web-services amazon-ec2 aws-cloudformation aws-cloudformation-custom-resource

我已使用Cloud Formation Template (CFT) 成功创建了以下四个资源:

  1. 专有网络
  2. 子网
  3. 互联网网关
  4. 附加网关

现在,我正在尝试使用 EC2 实例创建一个安全组,这是代码。

  Type: AWS::EC2::SecurityGroup
  Properties:
      GroupDescription: Allow http and ssh to client host
      VpcId:
         Ref: InsuranceVPC
      SecurityGroupIngress:
      - IpProtocol: tcp
        FromPort: 80
        ToPort: 80
        CidrIp: 0.0.0.0/0
      - IpProtocol: tcp
        FromPort: 22
        ToPort: 22
        CidrIp: 0.0.0.0/0
      SecurityGroupEgress:
      - IpProtocol: tcp
        FromPort: 80
        ToPort: 80
        CidrIp: 0.0.0.0/0

Ec2Instance: 
  Type: AWS::EC2::Instance
  Properties: 
    ImageId: "ami-08706cb5f68222d09"
    KeyName: 
      Ref: "DevOpsAutomation"
    NetworkInterfaces: 
      - AssociatePublicIpAddress: "true"
        DeviceIndex: "0"
        GroupSet: 
          - Ref: "InsuranceSecurityGroup"
        SubnetId: 
          Ref: "InsuranceSubnet"

但是,当我在(CFT,如上所示,代码)中使用 Key 参数(这是我在资源的同一区域中存在的 key )时,我的 CFT 堆栈失败并出现以下错误:

模板格式错误:模板的资源 block 中 Unresolved 资源依赖关系 [DevOpsAutomation] 注意:DevOpsAutomation 是我的键名

我验证的步骤:

  1. CFT模板资源与 key 在同一个区域
  2. 已删除并新创建的 key 对
  3. 尝试使用不同的 key 对
  4. 我在任何地方都找不到将 key 与 CFT 堆栈一起导入的选项,以便我的 EC2 实例可以使用它。
  5. 即使在创建堆栈时, key 也不会出现在堆栈的 parameter 部分中(在 keypair 部分中可见) .

我的问题是,我应该如何使用我的 AWS 账户中存在的 key 对创建 EC2 实例(作为 CFT 的一部分)?

最佳答案

删除键名前面的RefRef 用于引用已定义为 CloudFormation 模板一部分的其他资源。如果 key 对已经存在,则只需使用 key 名称即可。

KeyName: "DevOpsAutomation"

关于amazon-web-services - CloudFormation 模板不选择 key 对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63105170/

相关文章:

json - 如何获取 lambda arns 列表?

apache - vpc下的amazon ec2实例无法解析自己的主机名

amazon-web-services - 如何使 cloud-init 启动脚本在每次 EC2 实例启动时运行?

amazon-web-services - 自动化 API Gateway 阶段部署

postgresql - 定义 AWS RDS Postgres session 限制

linux - 为 EC2 Amazon Linux 实例设置 SFTP Sublime Text 3

amazon-web-services - 如何在 CloudFormation 中附加列表

amazon-web-services - 使用 Bitbucket 存储库在 AWS 中进行资源配置的 CI/CD

amazon-web-services - shell 访问 ec2 实例

amazon-web-services - 如何从给定的AWS Powershell cmdlet/别名检索所有数据?