我有 SAM 模板,它部署了一些 lambda,我想使用我在 SSM 参数存储中创建的一些参数。
我为我的测试创建了 2 个参数:
/test/param
这是一个简单的字符串/test/param/encrypt
包含与 KMS 密钥相同/test/param
但由 KMS 密钥加密的字符串
在我的 SAM 模板中,我试图/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 问题/公关的信息。关于这里发生了什么的任何想法?