CloudFormation 模板:如何以简短形式同时使用 Sub 和 GetAtt?

CloudFormation 模板:如何以简短形式同时使用 Sub 和 GetAtt?

我使用的是 yaml。因此,我们可以使用以下任一方法:

!GetAtt [ WebServer, AvailabilityZone ]
!GetAtt WebServer.AvailabilityZone

另外,我们可以使用:

!Sub 'sometext-${AWS::StackName}'

我如何使用 GetAtt 输出来代替${AWS::StackName},最好使用第二种形式GetAtt?我确实知道如何使用,Join但我想继续使用Sub

答案1

只需删除 !GetAtt 并引用所需的变量。在下面的代码中,EIP.AllocationId 通常通过 !GetAtt 返回。

!Sub |
#!/bin/bash
export INSTANCEID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
aws ec2 associate-address --instance-id $INSTANCEID --allow-reassociation --allocation-id ${EIP.AllocationId} --region ${AWS::Region}

相关内容