【发布时间】:2021-09-29 20:31:56
【问题描述】:
我需要我的 Glue 作业来使用基于运行环境的特定子网。SubnetId 下面的行会引发语法错误。我在 aws 的文档中读到,可以使用 !Ref 解决真/假评估,问题似乎与条件的语法有关。
SubnetId: !If [!Ref UseProdCondition, !Ref PrivateSubnetAz2, !Ref PrivateSubnetAz3]
GlueJDBCConnection:
Type: AWS::Glue::Connection
UseProdCondition: !Equals [!Ref "${AppEnv}", "production"]
Properties:
CatalogId: !Ref AWS::AccountId
ConnectionInput:
ConnectionType: "JDBC"
ConnectionProperties:
USERNAME: !Ref Username
PASSWORD: !Ref Password
JDBC_CONNECTION_URL: !Ref GlueJDBCStringTarget
sslMode: 'REQUIRED'
PhysicalConnectionRequirements:
AvailabilityZone:
Ref: AvailabilityZone2
SecurityGroupIdList:
- Fn::GetAtt: GlueJobSecurityGroup.GroupId
SubnetId: !If [!Ref UseProdCondition, !Ref PrivateSubnetAz2, !Ref PrivateSubnetAz3]
Name: !Ref JDBCConnectionName
【问题讨论】:
-
您的语法错误,您需要创建一个条件并仅引用其名称 - 您不能内联进行布尔运算。在此处查看示例:docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/…
标签: amazon-web-services yaml amazon-cloudformation aws-glue