AWS SAM模板无法引用安全组资源(先前在cloudfromation模板外部创建)

时间:2020-01-02 11:49:21

标签: amazon-web-services amazon-cloudformation aws-sam


我正在编写SAM模板,正在尝试在lambda函数的VpcConfig部分中引用安全组ID,如下所示:

      VpcConfig:
        SecurityGroupIds:
          - !GetAtt aurora-mysql.GroupId
        SubnetIds:
          - subnet-1234abcd
          - subnet-abcd1234

其中aurora-mysql先前创建的安全组的名称,如下所示: enter image description here 当我尝试部署堆栈时,它显示以下错误消息:

Failed to create the changeset: Waiter ChangeSetCreateComplete failed: Waiter encountered a terminal failure state Status: FAILED. Reason: Template error: instance of Fn::GetAtt references undefined resource aurora-mysql

看不到aurora-mysql安全组。
该安全组已经存在,并且是在cloudformation模板之外更早创建的。
有什么解决办法吗?

1 个答案:

答案 0 :(得分:2)

如果在同一模板中创建了安全性,则可以使用内置的“ Ref”功能获取资源ID。

如果要引用现有的安全组,则以上内容将无效。您可以将安全组ID作为参数传递给模板,然后使用内置的“ Ref”在需要的地方使用它。或者您可以使用云形成导出

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html