使用AWS CDK创建App Runner服务返回null错误该如何解决?
问题排查思路与常见错误点
高频代码错误检查
- IAM角色信任策略配置错误:这是该类无明确报错部署失败的最常见原因
- 你定义的
apiAppRunnerAccessRole(拉取ECR镜像用的访问角色),必须将信任主体设置为apprunner.amazonaws.com,且附加ECR镜像拉取相关权限(至少包含ecr:GetDownloadUrlForLayer、ecr:BatchGetImage、ecr:BatchCheckLayerAvailability权限) - 你定义的
apiAppRunnerInstanceRole(服务运行时实例角色),必须将信任主体设置为tasks.apprunner.amazonaws.com,两者信任主体不可混淆
- 你定义的
- ECR资源匹配错误:
- 确认
my-api-ecr仓库和你当前CDK部署的区域属于同一AWS区域 - 确认该仓库下确实存在
latest标签的可运行镜像
- 确认
- 配置规则冲突:
- 环境变量的键不能以
AWS_开头,不能包含特殊符号 my-api-service服务名在当前区域下未被其他App Runner服务占用
- 环境变量的键不能以
进一步排查步骤
- 执行
cdk synth命令输出生成的CloudFormation模板,检查App Runner相关资源的属性是否符合预期 - 登录AWS控制台进入CloudFormation页面,查看对应部署堆栈的事件日志,找到App Runner服务创建失败的完整事件详情
- 进入App Runner控制台,查看失败服务的部署日志,可定位到是镜像拉取失败、权限校验失败还是应用启动失败的具体原因
CfnService适配注意点
如果改用L1级的CfnService实现,只需将现有配置对应映射到CfnService的属性即可:
- 镜像相关配置对应
sourceConfiguration下的imageRepository字段 - 访问角色ARN填入
authenticationConfiguration的accessRoleArn字段 - 端口、环境变量对应
imageConfiguration字段
内容的提问来源于stack exchange,提问作者Lindy Hutz
相关产品推荐
相关产品推荐

