【问题标题】:Transfer of Resources ARN to Lambda将资源 ARN 转移到 Lambda
【发布时间】:2021-09-18 20:50:53
【问题描述】:

我有用 Golang 编写的 Lambda。 Lambda 执行一些操作并调用 Step Function。我在代码中硬编码了 Step Function ARN。我不喜欢这个解决方案,并想改进它。现在如何运作:

arn := aws.String(sfnArn) // e.g: arn:aws:states:us-east-1:123:stateMachine:machine-name
params := &sfn.StartExecutionInput{Input: input, Name: name, StateMachineArn: arn}

output, err := client.StartExecution(params)

知道如何改进它吗?我正在使用 Terraform,所以也许有任何选项可以通过 TF 传递 ARN?

【问题讨论】:

    标签: amazon-web-services go aws-lambda terraform


    【解决方案1】:

    有很多方法可以解决这个问题。因此,我将以利用 AWS 服务为重点来命名我想到的那个。

    1. SSM:将 Step Function 的 ARN 保存在 SSM parameter store 中,并在您的 Lambda 使用 ssm.GetParameter() API 运行时读取此参数。
    2. Lambda 环境变量:您可以将 ARN 设置为 Lambda 的环境变量,并使用 os.GetEnv()os.LookupEnv()
    3. 资源标签:您可以为您的 Step Function 提供一个唯一的标签,然后使用resourcegroupstaggingapi.GetResources() API 获取 Step Function,然后在您的代码中从该资源中读取 ARN。李>

    显然还有一百万种选择。您可以从 S3 或 EFS 读取配置文件,或将静态配置文件与您的 Lambda 捆绑在一起,或查询基于 HTTP 的 API 以读取该值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      • 1970-01-01
      • 2011-12-02
      • 2022-11-11
      • 1970-01-01
      • 2021-06-01
      • 2019-05-21
      相关资源
      最近更新 更多