【问题标题】:serverless parameter value is undefined when running serverless deploy运行 serverless deploy 时 serverless 参数值未定义
【发布时间】:2021-05-22 18:30:33
【问题描述】:
跟随https://www.serverless.com/blog/serverless-secrets-api-keys 在我的无服务器服务/应用程序中添加带有键abc 的参数值(通过UI 仪表板),但在运行serverless deploy 时出现此错误:${param:abc} not defined。有谁知道如何解决这个问题?
serverless.yaml 配置 sn-p
frameworkVersion: "1.83.2"
provider:
name: aws
apiGateway:
shouldStartNameWithService: true
runtime: python3.8
lambdaHashingVersion: 20201221
region: us-east-1
environment:
abc:${param:abc}
【问题讨论】:
标签:
amazon-web-services
serverless-framework
serverless
【解决方案1】:
我无法在 StackOverflow 上提供这个答案,因为我们的支持团队需要专门与您和您的 Serverless.com 组织合作 - 所以请通过应用程序中的支持渠道与我联系,或直接私信我在 Slack 中。
可以在服务级别配置参数,并且可以选择在特定的stage 覆盖 - 因此这将有助于验证此参数是否在您部署到的service 或stage 中设置。
【解决方案2】:
嗯......如果我没记错的话,您似乎正在尝试在那里创建一个环境变量。您正在尝试为未定义的环境变量“abc”分配值,您可以通过几种方法将值传递给您的环境,您可以拥有一个环境文件,您可以在其中将这些参数提供给您的服务,如下面的 envFilePath :“../../shared/environments/env.json”
然后您将能够选择该值并使用 ${file(${self:custom.envFilePath}):abc} 或其他选项将其设置为变量,您可以直接在 yml 中键入该值。您甚至可以从 ssm 参数中读取值。