Gur*_*ish 5 yaml amazon-web-services aws-cloudformation serverless-framework serverless-application-model
我试图在秘密管理器(创建的访问机密https://aws.amazon.com/secrets-manager/通过SSM(系统管理器- )https://docs.aws.amazon.com/systems-manager/latest /userguide/systems-manager-parameter-store.html ) 即 AWS 参数存储,并将其存储在serverless.yml文件中的自定义 YAML 变量中?我正在尝试通过无服务器框架(https://serverless.com/)实现云形成,并且我正在尝试在云形成中实现嵌套的 if 语句,以使用下面的代码实现上述内容。
stage: &stage 'dev' #Hardcoded for now
rdsMasterPassword:
!If
- !Equals [*stage,"prod"]
- ${ssm:/aws/reference/secretsmanager/cred-prod~true:rdsMasterPassword}
- !If
- !Equals [*stage,"staging"]
- ${ssm:/aws/reference/secretsmanager/cred-staging~true:rdsMasterPassword}
- ${ssm:/aws/reference/secretsmanager/cred-dev~true:rdsMasterPassword}
Run Code Online (Sandbox Code Playgroud)
我为此尝试了云形成内在函数 Fn::If ,但面临这个错误:
Fn::If requires a list argument with the first element being a condition
只是想指出,如果您希望根据环境加载不同的 SSM 路径,可以通过多种方式实现,如下所述
例如,我在加载 json 文件时度过了一段愉快的时光
-- serverless-staging.json --
{
"ssm_path": "/path/to/staging/ssm/parameter"
}
-- serverless-prod.json --
{
"ssm_path": "/path/to/prod/ssm/parameter"
}
-- serverless.yml --
...
stage: ${opt:stage, 'dev'}
environment:
SSM_PATH: ${file(serverless-${self:provider.stage}.json):ssm_path}
... etc etc
Run Code Online (Sandbox Code Playgroud)
希望这对通过搜索到达这里的其他人有所帮助
| 归档时间: |
|
| 查看次数: |
1872 次 |
| 最近记录: |