amazon-web-services - 如何根据环境给出云形成的单独变量

标签 amazon-web-services yaml aws-cloudformation

  • 我在阶段和产品中有 2 个不同的安全组
  • 对于 lambda 函数,如果是阶段,则必须给出 SG1;如果是产品,则必须给出 SG2
  • 我需要在模板中编写单独的资源吗?或者我可以给出任何条件表达式
  • 我的安全组 SG1 和 SG2 仅从此模板部署
Conditions:
  IsEnvProd: Fn::Equals [ !Ref Env, 'prod' ]
  IsEnvStage: Fn::Equals [ !Ref Env, 'stage' ]
BackupLambda:
    Type: "AWS::Lambda::Function"
    Properties:
      Handler: "backup_lambda.lambda_handler"
      Role: !Ref Role
      Runtime: "python2.7"
      MemorySize: 128
      Timeout: 120
      Code:
        S3Bucket: !Ref BucketWithLambdaFunction
        S3Key: !Ref PathToLambdaFile
      VpcConfig:
        SecurityGroupIds:
          - !Ref SG1 # if its stage(IsEnvStage)
          - !Ref SG2 # if its prod(IsEnvProd)

最佳答案

您可以使用If :

      VpcConfig:
        SecurityGroupIds:
          - !If [IsEnvStage, !Ref SG1, !Ref SG2]

关于amazon-web-services - 如何根据环境给出云形成的单独变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69402895/

相关文章:

symfony1 - 在 Propel 中命名生成的函数

amazon-web-services - 使用脚本为现有 SQS 队列创建警报

reactjs - 使用 HTML img 标签时 Cloudfront 连续缓存未命中,但通过 Postman/浏览器请求获得缓存命中

caching - 为整个 S3 存储桶/CloudFront 设置默认缓存控制和过期

防止注入(inject)的 C# 字符串参数?

amazon-web-services - 将 SSD 存储添加到 AWS EC2 保留实例

ruby - 用 YAML.load 解析 json 安全吗?

amazon-web-services - AWS Elasticache Redis,当我的 Redis(已禁用集群模式)只有 1 个节点并且失败时会发生什么

python-3.x - 在 ruamel.yaml 的列表元素中添加注释

amazon-web-services - 暂时允许 EC2 实例访问 AWS CLI