amazon-web-services - AWS SAM 模板无法引用安全组资源(之前在 cloudformation 模板外部创建)

标签 amazon-web-services aws-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 模板外部创建的。
请问有什么解决办法吗?

最佳答案

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

如果您想引用现有的安全组,那么上述方法将不起作用。您可以将安全组 ID 作为参数传递给模板,并使用内置的“Ref”在需要的地方使用它。或者您可以使用云形成导出

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

关于amazon-web-services - AWS SAM 模板无法引用安全组资源(之前在 cloudformation 模板外部创建),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59562876/

相关文章:

amazon-web-services - aws-cli - 使用 --query 和 --filter 过滤输出

amazon-web-services - 使用 CloudFormation 模板基于 IAM 的 ssh 到 EC2 实例

amazon-web-services - 如果有声明,如何向我的 Lambda 添加更多策略?

java - `GeneratePresignedUrl` 需要 AsyncTask?

node.js - 无法使用 Sequelize ORM 连接到 AWS RDS

macos - 如何从 mac 连接到 aws Redshift db

templates - 如何将 jinja if-else 逻辑与 Ansible inventory 一起使用

amazon-web-services - 如何将 AWS 公共(public)扩展添加到 AWS Lambda cloudformation 模板?

aws-codebuild - AWS Sam 包命令在构建规范期间失败

aws-cloudformation - AWS-SAM 模板是否支持生命周期配置设置?