You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudFormation如何按环境配置独立变量实现Lambda安全组按需绑定

问题解答

你不需要编写独立的资源定义,直接通过 CloudFormation 内置的 Fn::If 条件函数即可实现该需求。

你现有模板里已经定义好了环境判断条件,仅需要修改 BackupLambda 资源下 VpcConfig.SecurityGroupIds 的配置即可,修改后的完整模板片段如下:

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:
          - !If 
            - IsEnvProd
            - !Ref SG2
            - !Ref SG1

逻辑说明

Fn::If 函数的逻辑为:

  • 第一个参数传入判断条件 IsEnvProd
  • 第二个参数为条件成立(即当前环境是prod)时返回的值,这里是安全组SG2的引用
  • 第三个参数为条件不成立(即当前环境是stage)时返回的值,这里是安全组SG1的引用

如果后续你需要为单个环境绑定多个安全组,直接在对应分支的数组中追加安全组引用即可。

内容的提问来源于stack exchange,提问作者abd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:06:03