如何根据环境在云的形成中给出单独的变量
How to give separate variables in cloud formation with respect to environment
- 我在阶段和生产中有 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]
- 我在阶段和生产中有 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]