【问题标题】:How to get streamArn of a manually created dynamodb table in CloudFormation如何在 CloudFormation 中获取手动创建的 dynamodb 表的 streamArn
【发布时间】:2023-03-13 21:05:02
【问题描述】:

我正在尝试创建一个 cloudformation 模板来部署一个 lambda,这个 lambda 将 DynamoDB 作为触发器。因此,为了适应这一点,我在我的 cloudformation 模板中使用 AWS::Lambda::EventSourceMapping 并为每个 dynamodb 表硬编码 EventSourceArn。

我的问题是,有什么方法可以获取手动创建的现有 DynamoDB 表的 streamArn?或者我必须从参数部分硬编码传递这个值。

请给我一些建议。

【问题讨论】:

  • 您可以将现有资源作为 cloudformation 模板的一部分。或手动传递 arn。
  • 我不想在我的资源部分中包含 DynamoDB 表,并且该表不是通过堆栈创建的,因此也不能使用导出/导入。我可以使用 Fn::Join 但流 arn 有时间戳,所以我正在重新考虑替代方案。是的,我们可以使用硬编码的 arn,但要寻找通过传递 dynamoDb 表名来获取 arn 的方法。
  • 我认为没有简单的解决方案。

标签: amazon-web-services amazon-cloudformation


【解决方案1】:

您手动创建的所有内容都在 AWS 控制台中可用,您可以检查所有 arn。

对于您的具体情况,请转到AWS Console -> DynamoDB -> Select your table

注意:我建议使用 cloudformation 并避免使用手动的东西,如果这确实部署在某个地方。

【讨论】:

    【解决方案2】:

    除了certain parameter types 之外,没有用于检索手动创建的资源 Arns 的原生 CloudFormation 功能。

    如果您打算将此资源保留为手动创建的资源,则需要将其作为参数传递到模板中,以便您可以引用它,引用为字符串或 SSM based parameter

    或者,您可以构造一个Custom resource,它接受 DynamoDB 表名称作为参数并触发 Lambda 以获取流的 Arn。

    如果您想在 CloudFormation 中管理表格,您可以在 CloudFormation 模板中构建资源,然后在 import into the stack 中构建资源。通过这样做,您可以引用DynamoDB table resourceStreamArn

    【讨论】:

      猜你喜欢
      • 2018-06-08
      • 2018-12-03
      • 2020-02-27
      • 2017-08-10
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多