- 我在阶段和产品中有 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/