首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用yaml格式文件在serverless.yml中编写嵌套IF,同时将其用于云形成?

如何使用yaml格式文件在serverless.yml中编写嵌套IF,同时将其用于云形成?
EN

Stack Overflow用户
提问于 2019-05-27 12:41:42
回答 2查看 2.1K关注 0票数 5

我正在尝试通过SSM (系统管理器- https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html )访问在秘密管理器(https://aws.amazon.com/secrets-manager/)中创建的秘密,即AWS参数存储,并将其存储在serverless.yml文件中的自定义YAML变量中?我正在尝试通过无服务器框架(https://serverless.com/)实现云的形成,并且我正在尝试使用下面的代码在云形成中实现嵌套的if语句来实现上面的内容。

代码语言:javascript
复制
 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}

我已经尝试过云形成内部函数Fn::If,但面对这个错误:Fn::If requires a list argument with the first element being a condition

EN

回答 2

Stack Overflow用户

发布于 2019-12-06 06:01:25

我只想指出,如果您希望根据环境加载不同的SSM路径,您可以通过许多方法来实现,outlined here

例如,我在加载json文件时非常愉快。

代码语言:javascript
复制
-- 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

希望这能帮助其他人从搜索中找到这里

票数 1
EN

Stack Overflow用户

发布于 2021-08-06 15:12:49

由于YAML中的限制,无法对内部函数序列使用快捷语法。

请参阅docs中的“重要”部分以供参考。

试试这个:

代码语言:javascript
复制
stage: &stage 'dev' #Hardcoded for now
rdsMasterPassword:
  Fn::If:
    - Fn::Equals: [*stage, "prod"]
    - ${ssm:/aws/reference/secretsmanager/cred-prod~true:rdsMasterPassword}
    - Fn::If: 
      - Fn::Equals: [*stage, "staging"]
      - ${ssm:/aws/reference/secretsmanager/cred-staging~true:rdsMasterPassword}
      - ${ssm:/aws/reference/secretsmanager/cred-dev~true:rdsMasterPassword}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56319766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档