Cloud Formation启动网络引用IaminstanceProfile无法创建



我正在尝试创建一个启动网,它在我的云形式堆栈中引用 iaminstanceProfile 。这是代码 - 我省略了无关的部分:

...
            Resources:
              ServerLaunchTemplate:
                Type: 'AWS::EC2::LaunchTemplate'
                Properties:
                  LaunchTemplateData:
                    InstanceType: !Ref InstanceType
                    SecurityGroups:
                      - !Ref SecGroup
                    IamInstanceProfile: !Ref ServerProfile
                    UserData:
        ...
              ServerProfile:
                Type: 'AWS::IAM::InstanceProfile'
                Properties:
                  Path: /
                  Roles:
                    - !Ref ServerRole
...

serverprofile 成功创建了。但是,当堆栈创建过程达到创建 serverlaunchtemplate 的步骤时,它会失败。

Property validation failure: [Value of property {/LaunchTemplateData/IamInstanceProfile} does not match type {Object}]

如果我省略了对 iaminstanceProfile 的引用,则成功创建了启动网络

根据文档和一些示例,这应该有效...基于我理解的错误, instanceType lainmytemplate的字段需要参考对象,但是" !ref InstanceType "返回资源ID。

我该如何解决?我该如何检索对象,大概是" /lainmyTemplatedAta/iaminstanceProfile "字段?

谢谢

在文档中易于错过:iaminstanceProfile需要一个iaminstanceprofile云形式对象,其中引用的iaminstanceProfile是其属性。

请参阅https://docs.aws.amazon.com/awscloudformation/latest/userguide/aws-properties-ec2-launchtemplate-launchtemplatedata.html#cfn-ec2-cfn-ec2-launchtemplatetemplate-launchtemplate-launchtemplatetata-iaminstanceprile and doctpsprofile and ytpps:///////////位https。aws.amazon.com/awscloudformation/latest/userguide/aws-properties-ec2-launchtemplate-iaminstanceprofile.html。

这应该有效:

  PortalLaunchTemplate:
    Type: 'AWS::EC2::LaunchTemplate'
    Properties:
      LaunchTemplateName: !Sub ${InstanceName}-launch-template
      LaunchTemplateData:
        ImageId: !Ref AmiId
        ...
        IamInstanceProfile:
          Arn: !GetAtt InstanceProfile.Arn

对我有用的是:

"IamInstanceProfile":{ "Arn": 
{
"Fn::Sub":"arn:aws:iam::${AWS::AccountId}:instanceprofile/${name_of_Instance_profile}"
}

大概是因为它需要" arnn"值为字符串。

相关内容

  • 没有找到相关文章