我有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 Issues / PR上找到有关该参数的任何信息。对这里发生的事情有任何想法吗?
答案 0 :(得分:1)