Amazon cloudformation 为参数';instanceProfileName';无效

Amazon cloudformation 为参数';instanceProfileName';无效,amazon-cloudformation,amazon-iam,aws-cdk,Amazon Cloudformation,Amazon Iam,Aws Cdk,运行cdk deploy时,我收到以下错误消息: 创建失败| AWS::ImageBuilder::InfrastructureConfiguration | TestInfrastructureConfiguration为参数“instanceProfileName”提供的值无效。提供的实例配置文件不存在。请指定其他实例配置文件,然后重试。(服务:Imagebuilder,状态代码:400,请求ID:41f431d7-8544-48e9-9faf-a870b83b0100,扩展请求ID:nul

运行
cdk deploy
时,我收到以下错误消息:

创建失败| AWS::ImageBuilder::InfrastructureConfiguration | TestInfrastructureConfiguration为参数“instanceProfileName”提供的值无效。提供的实例配置文件不存在。请指定其他实例配置文件,然后重试。(服务:Imagebuilder,状态代码:400,请求ID:41f431d7-8544-48e9-9faf-a870b83b0100,扩展请求ID:null)

C代码如下所示:

var instanceProfile=new CfnInstanceProfile(这是“TestInstanceProfile”,new CfnInstanceProfile props{
InstanceProfileName=“测试实例配置文件”,
角色=新字符串[]{“TestServiceRoleFormageBuilder”}
});
var infrastructureConfiguration=新的CfnInfrastructureConfiguration(这是“TestInfrastructureConfiguration”,新的CfnInfrastructureConfigurationProps{
Name=“测试基础架构配置”,
InstanceProfileName=instanceProfile.InstanceProfileName,
InstanceTypes=新字符串[]{“t2.medium”},
Logging=新的CfnInfrastructureConfiguration.LoggingProperty{
S3Logs=新的CfnInfrastructureConfiguration.S3LogsProperty{
S3BucketName=“s3测试资产”,
S3KeyPrefix=“ImageBuilder/Logs”
}
},
SubnetId=“subnet-12f3456f”,
SecurityGroupId=新字符串[]{“sg-12b3e4e5b67f8900f”}
});
TestServiceRoleFormageBuilder已存在,并且以前正在工作。大约一个月前,相同的代码正在成功运行。有什么建议吗

如果删除CfninfrastructureConfiguration创建部分,部署将成功运行:,但至少需要2分钟才能完成

AwsImageBuilderStack:正在部署。。。 AwsImageBuilderStack:正在创建CloudFormation变更集。。。 0/3 | 14:24:37 |审查|进行中| AWS::CloudFormation::Stack | AwsImageBuilderStack用户启动 0/3 | 14:24:43 |正在创建| AWS::CloudFormation::Stack | AwsImageBuilderStack用户启动 0/3 | 14:24:47 |正在创建| AWS::CDK::Metadata | CDKMetadata/Default(CDKMetadata) 0/3 | 14:24:47 |正在创建| AWS::IAM::InstanceProfile | TestInstanceProfile 0/3 | 14:24:47 |正在创建| AWS::IAM::InstanceProfile |已启动TestInstanceProfile资源创建 1/3 | 14:24:48 |正在创建| AWS::CDK::Metadata | CDKMetadata/Default(CDKMetadata)资源创建已启动 1/3 | 14:24:48 |创建|完成| AWS::CDK::元数据| CDKMetadata/默认值(CDKMetadata) 1/3目前正在进行中:AwsImageBuilderStack、TestInstanceProfile 3/3 | 14:26:48 |创建|完整| AWS::IAM::InstanceProfile | TestInstanceProfile 3/3 | 14:26:49 |创建完成| AWS::CloudFormation::Stack | AwsImageBuilderStack

这可能是某种比赛条件吗?我应该使用多个堆栈来实现我的目标吗

如果需要,是否可以使用等待条件绕过2分钟的创建时间

环境
  • CDK CLI版本:1.73.0
  • Node.js版本:14.13.0
  • OS:Windows 10
  • 语言(版本):C#(.NET核心3.1)
更新
因为原因似乎是AWS内部的,所以我使用了一个预先创建的实例概要文件作为解决方法。配置文件可以通过IAM管理控制台或CLI创建。不过,最好有一个合适的解决方案。

您必须在两个结构之间创建一个依赖关系。当使用可选的name参数时,CDK不会推断出它,与逻辑id相反(在这种情况下,逻辑id似乎不起作用)

以下是相关文件:

infrastructureConfiguration.node.addDependency(instanceProfile)