【问题标题】:How to refer the existing SecurityGroup in CloudFormation?如何在 CloudFormation 中引用现有的 SecurityGroup?
【发布时间】:2021-10-27 13:34:05
【问题描述】:

我创建了以下 CloudFormation,但它在启动后失败了以下错误。这是一种引用现有安全组的方法吗?

AWSTemplateFormatVersion: "2010-09-09"

Resources:
  VPCESecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties: 
      GroupDescription: "Security group for VPCE ASM"
      GroupName: "vpce-asm"
      VpcId: '{{resolve:ssm:/app/network/VPCId:1}}'

  SSMCMKMSKParam:
    Type: AWS::SSM::Parameter
    Properties:
      Name: /app/network/MSK-ASMsg
      Description: SSM parameter consumed by a CloudFormation template for Apache MSK Spoke.
      Type: String
      Value: !Ref VPCESecurityGroup

错误:

来自 CloudFormation 的错误:[{LogicalResourceId:SC-444401234567-pp-hjsppldnc7ic2,ResourceType:AWS::CloudFormation::Stack,StatusReason:以下资源未能创建:[VPCESecurityGroup]。用户请求回滚。}, {LogicalResourceId : VPCESecurityGroup, ResourceType : AWS::EC2::SecurityGroup, StatusReason : vpce-asm 已存在于堆栈 arn:aws:cloudformation:us-east-1:444401234567:stack/SC-444401234567 -pp-d0eshkfvci4au/75695b0a-651b-11ea-83dc-0a9027832da7},{LogicalResourceId:SC-444401234567-pp-hjsppldnc7jc2,资源类型:AWS::CloudFormation::Stack,StatusReason:用户启动}]


以下代码已经在另一个堆栈中。如何从堆栈中引用它?

  VPCESecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties: 
      GroupDescription: "Security group for VPCE ASM"
      GroupName: "vpce-asm"
      VpcId: '{{resolve:ssm:/app/network/VPCId:1}}'

【问题讨论】:

    标签: amazon-web-services yaml amazon-cloudformation aws-cloudformation-custom-resource


    【解决方案1】:

    这是您在 CloudFormation 中硬编码时遇到的错误。在您的情况下,您已经硬编码了安全组的名称(“vpc-asm”)。 在重新部署之前删除旧堆栈或更改新堆栈中 SG 的名称,或者不要硬编码安全组的名称。

    【讨论】:

    • 谢谢,我无法删除包含 VPCESecurityGroup 的堆栈,这是一个更大的 CloudFormation 文件。如何避免硬编码安全组的名称?或者它是一种引用另一个堆栈的VPCESecurityGroup 的方法?
    • @ca9163d9 只是不要指定名称。 CF 会自动为其生成名称。
    猜你喜欢
    • 1970-01-01
    • 2014-08-08
    • 2018-04-08
    • 2014-02-02
    • 2020-06-23
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    相关资源
    最近更新 更多