【发布时间】:2018-08-19 07:22:30
【问题描述】:
我有 SAM 模板,它部署了一些 lambda,我想使用我在 SSM 参数存储中创建的一些参数。
我为我的测试创建了 2 个参数:
-
/test/param这是一个简单的字符串 -
/test/param/encrypt包含与/test/param相同的字符串,但由 KMS 密钥加密
在我的 SAM 模板中,我试图通过关注 this blog post 来获取 /test/params 的值。这是我的模板的截图:
Parameters:
AuthPasswordPublic:
Type: AWS::SSM::Parameter::Value<String>
NoEcho: true
MinLength: 8
Description: Password for the "public" part of the website
Default: /test/param
...
Resources:
Auth:
Type: AWS::Serverless::Function
Properties:
Runtime: nodejs8.10
Handler: auth.handler
CodeUri: ./dist
Environment:
Variables:
PASSWORD_PUBLIC: !Ref AuthPasswordPublic
SEED: !Ref AuthSeed
Events:
GetResource:
Type: Api
Properties:
Path: /auth
Method: post
这在理论上应该在部署到 AWS 上时有效。但是,我想先在本地测试它。我已经aws-sam-local 并且我的凭证已在我的本地计算机上正确配置,因为我能够使用 AWS CLI。但是在本地运行时,envvar PASSWORD_PUBLIC 的值是空的。我测试了明文和加密的 SSM 参数,但结果是一样的。
我怀疑aws-sam-cli 尚不支持 SSM 参数,但无法在网上找到任何有关该参数的信息,也无法在 GitHub 问题/PR 上找到。关于这里发生了什么的任何想法?
【问题讨论】:
-
尝试使用serverless-offline。
标签: amazon-web-services aws-lambda aws-sam-cli aws-ssm