【问题标题】:Refer to the latest Version ID of a S3 object in CloudFormation参考 CloudFormation 中 S3 对象的最新版本 ID
【发布时间】:2022-01-06 18:09:23
【问题描述】:

我想在我的 CloudFormation 模板中引用 s3 对象的最新版本 ID,我应该如何引用它?

我在 CloudFormation 模板中有以下变量作为我的参数

  • 存储的 S3 存储桶:LambdaS3
  • 存储的 S3 对象名称(一个 zip 文件):Lambdafilename

以下代码是我现有的内部函数引用,我应该如何修复它?

        Version: !GetAtt
          - !Sub "arn:${AWS::Partition}:s3::::${LambdaS3}/${IoTProvisioningLambdafilename}.zip.Versions[?IsLatest].[VersionId]"

【问题讨论】:

  • 我的目标是使用可以通过 AWS CLi 完成的最新 S3 对象 verisonId 来更新 CloudFormation 堆栈。所以我通过使用 AWS CLi 而不是 CloudFormation 模板解决了这个问题。
  • 进展如何?仍然不清楚你能做什么?

标签: amazon-web-services amazon-s3 amazon-cloudformation


【解决方案1】:

不能使用 SubGetAtt。来自docs

对于 Fn::GetAtt 逻辑资源名称,您不能使用函数。您必须指定一个作为资源逻辑 ID 的字符串。

您必须硬编码您的 S3 对象的全名。解决这个问题的唯一方法是使用macroscustom resource

【讨论】:

  • 能否提供代码以使用 CloudFormation 宏实现我的目标?
  • @KenLEE 抱歉,这样不行。你写代码。如果它不起作用,你会用你的代码和你遇到的任何错误提出新的问题。
  • 你的意思是我可以用宏来实现吗?
  • @KenLEE 是的,你可以写马可。也可以使用custom resource。我可以将其添加到答案中。
猜你喜欢
  • 2021-08-27
  • 2017-07-26
  • 1970-01-01
  • 2011-11-15
  • 2020-12-02
  • 1970-01-01
  • 1970-01-01
  • 2020-01-26
  • 2012-09-18
相关资源
最近更新 更多