[英]How can I reference an existing role in my new CloudFormation template?
[英]Reference a dynamic role name in a Cloudformation template
在一個 Cloudformation 模板中,我創建了以下角色:
CRMPiccoRole:
Type: 'AWS::IAM::Role'
Properties:
RoleName: !Sub 'crm-${Environment}-register'
在 EC2 實例的另一個 Cloudformation 模板中,我嘗試將該角色附加到我的 EC2 實例,但是我不確定如何引用動態角色名稱。
Resources:
InstanceProfile:
Type: 'AWS::IAM::InstanceProfile'
Properties:
Path: /
Roles:
- !Ref 'crm-${Environment}-register'
這可以做到嗎?
當我嘗試驗證模板時出現錯誤:
調用ValidateTemplate操作時發生錯誤(ValidationError): Template format error: Unresolved resource dependencies [crm-${Environment}-register] 在模板的Resources塊中
Ref
不能跨堆棧工作。 假設您使用相同的 account 和 region ,則必須使用Export和ImporValue函數。
因此,在您的第一個堆棧中,您將擁有:
CRMPiccoRole:
Type: 'AWS::IAM::Role'
Properties:
RoleName: !Sub 'crm-${Environment}-register'
Outputs:
MyCRMPiccoRole:
Value: !Ref CRMPiccoRole
Export:
Name: !Sub 'crm-${Environment}-register'
在第二個堆棧中:
Resources:
InstanceProfile:
Type: 'AWS::IAM::InstanceProfile'
Properties:
Path: /
Roles:
- Fn::ImportValue:
!Sub 'crm-${Environment}-register'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.