使用CloudFormation创建CodeCommit仓库时遭遇400错误请求
问题描述
我创建了一个CloudFormation模板,用于在CodeCommit中创建新仓库,同时从S3拉取压缩包并复制到该仓库,但执行模板时出现400 Bad Request错误。
错误堆栈截图:
对应的CloudFormation模板代码如下:
AWSTemplateFormatVersion: 2010-09-09 Description: my First code commit CF template Parameters: DemoBucket: Type: String Description: Bucket in which you have code Default: jaivijaycccf DemoKey: Type: String Description: key of zipped code Default: demo.zip Resources: HelloWorld: Type: AWS::CodeCommit::Repository Properties: RepositoryName: HelloWorldApp RepositoryDescription: This is a repository for my project with code from MySourceCodeBucket Code: BranchName: development S3: Bucket: !Ref DemoBucket Key: !Ref DemoKey ObjectVersion: 1
可能的原因及解决方法
- 无效的S3对象版本号:模板中
ObjectVersion: 1不符合S3版本号格式,S3版本号是系统生成的唯一字符串(如XjKbF8dZ...),而非数字。需登录S3控制台查看对象实际版本号替换,或删除该字段使用最新版本。 - CloudFormation执行角色权限不足:执行角色需具备
codecommit:CreateRepository、s3:GetObject(指定版本时需s3:GetObjectVersion)权限,检查IAM策略是否包含对应资源的权限配置。 - S3压缩包格式或结构错误:CodeCommit要求压缩包为标准zip格式,且代码文件需直接位于压缩包根目录(不能嵌套子文件夹)。验证压缩包格式和内部结构是否符合要求。
- S3桶/对象路径错误:确认桶名
jaivijaycccf和对象键demo.zip拼写正确,S3资源名称大小写敏感,需完全匹配实际路径。
内容的提问来源于stack exchange,提问作者user1713827
相关产品推荐
相关产品推荐

