Bil*_*ill 15 amazon-web-services aws-cloudformation
据我所知,我可以使用ImportValue 来引用Resources.
NetworkInterfaces:
- GroupSet:
- Fn::ImportValue:
Fn::Sub: "${NetworkStackNameParameter}-SecurityGroupID"
AssociatePublicIpAddress: 'true'
DeviceIndex: '0'
DeleteOnTermination: 'true'
SubnetId:
Fn::ImportValue:
Fn::Sub: "${NetworkStackNameParameter}-SubnetID"
Run Code Online (Sandbox Code Playgroud)
不过这个功能好像不能用Parameters
Parameters:
VPC:
Description: VPC ID
Type: String
Default:
Fn::ImportValue:
!Sub "${NetworkStackNameParameter}-VPC"
Run Code Online (Sandbox Code Playgroud)
如果我使用上面的方式,会得到错误:
调用 CreateChangeSet 操作时发生错误 (ValidationError):模板格式错误:每个默认成员必须是字符串。
无论如何要解决吗?因为同一个vpc id、子网id、安全组Id,不会只用在一个地方。
所以我不得不放弃:
- 在您的 AWS CloudFormation 模板中,确认参数部分不包含任何内部函数。
https://aws.amazon.com/premiumsupport/knowledge-center/cloudformation-template-validation/
小智 3
一种方法是使用条件:
Parameters:
MyValue:
Type: String
Value: ''
Conditions:
MyValueExists: !Not [ !Equals [!Ref MyValue, '']]
Resources:
Resource:
Type: AWS::Something
Properties:
Key: !If [MyValueExists, !Ref MyValue, !ImportValue 'Imported']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8086 次 |
| 最近记录: |