【问题标题】:How do I reference a variable inside a ssm in Serverless如何在 Serverless 中引用 ssm 中的变量
【发布时间】:2022-12-08 09:22:19
【问题描述】:

最近我将一个无服务器环境从一个非常过时的版本更新到最新版本并且遇到了很多问题。其中之一我似乎不明白为什么它不起作用。以前我们使用 ssm 引用来引用 AWS 参数存储变量,如下所示:

SQS_URL: ${ssm:/foo/${opt:env}/sqsUrl}

现在我已经更新了我们对 opt 的使用以使用 env 所以它看起来像:

SQS_URL: ${ssm:/foo/${env:ENV, "NOT_VALID"}/sqsUrl}

但我收到以下错误:

无法在“provider.environment.SQS_QUEUE_URL”处解析变量:在“ssm”源中找不到值,

我们曾经广泛使用它来在 lambdas 上设置环境变量,以便我们可以将值传递给它们以供它们在运行时使用,但无服务器似乎不再喜欢这个了,但看看the documentation它似乎应该工作。谁能帮我解决这个问题?

谢谢!

【问题讨论】:

    标签: amazon-web-services serverless


    【解决方案1】:

    在无服务器中,您可以使用 ${ssm:yourVariableName} 语法在无服务器服务模型 (SSM) 中引用变量。例如,如果您在 SSM 中有一个名为 myVariable 的变量,您可以在无服务器配置文件中引用它,如下所示:

    # serverless.yml
    
    provider:
      name: aws
      runtime: nodejs12.x
    
    functions:
      myFunction:
        handler: handler.myFunction
        environment:
          MY_VARIABLE: ${ssm:/my/variable/path/myVariable}
    

    在上面的示例中,myFunction 函数将通过 MY_VARIABLE 环境变量访问 SSM 中 myVariable 变量的值。

    请务必注意,SSM 中必须存在 myVariable 变量才能使其正常工作。您可以在 SSM 控制台中或使用 aws ssm put-parameter 命令创建和管理变量。

    【讨论】:

      猜你喜欢
      • 2020-10-09
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-08
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      相关资源
      最近更新 更多