amazon-web-services - 如何使用 yaml 格式文件在 serverless.yml 中编写嵌套 IF,同时使用它进行云形成?

标签 amazon-web-services yaml aws-cloudformation serverless-framework serverless-application-model

我正在尝试通过 SSM(Systems Manager- https://aws.amazon.com/secrets-manager/ )(即 AWS 参数存储)访问在 key 管理器( https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html )中创建的 key ,并将其存储在 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}

我已经尝试过云形成固有函数 Fn::If 为此但面临这个错误: Fn::If 需要一个列表参数,第一个元素是条件

最佳答案

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

例如,我在通过 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

希望这对通过搜索到达这里的其他人有所帮助

关于amazon-web-services - 如何使用 yaml 格式文件在 serverless.yml 中编写嵌套 IF,同时使用它进行云形成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56319766/

相关文章:

java - SpringBootApplication 无法从 application.yml 文件加载属性

amazon-web-services - QueuePolicy 中需要什么权限才能允许 SNS 发送到 SQS?

amazon-web-services - 设计您的应用程序以处理Amazon SQS中的FIFO

amazon-web-services - 您可以将用户导出/迁移到AWS Cognito之外,这会导致供应商锁定吗?

amazon-web-services - AWS CloudFormation : Unable to import resources of type SubnetRouteTableAssociation, VPCGatewayAttachment 和路由

symfony - 在 codeception.yml 中使用参数占位符

amazon-web-services - 使用 AWS DynamoDB 或 Redshift 存储分析数据

angular - ENOENT : no such file or directory, 打开 '/home/vsts/work/package.json'

amazon-web-services - AWS-使用 CFT 将 Lambda 与 API Gateway 集成

amazon-web-services - AWS CLI S3 : copying file locally using the terminal : fatal error: An error occurred (404) when calling the HeadObject operation