gpt4 book ai didi

amazon-iam - 无服务器框架和 CodeBuild : Missing required key 'Bucket' in params

转载 作者:行者123 更新时间:2023-12-01 12:19:53 25 4
gpt4 key购买 nike

我在让 AWS CodeBuild 构建和部署使用 Serverless Framework 创建的项目时遇到问题.

这是迄今为止的故事。

初始化项目

我关注了 docs创建无服务器项目的开端,并保持“原样”——基本上是“Hello World”。

然后我把这个项目放在一个 git repo 中。

从 CLI 测试部署

然后,从 CLI 中,我调用了...

serverless deploy

...正如预期的那样,已经部署了 lambda。一个好的开始。

代码构建

接下来的议程是尝试使用 AWS CodeBuild 进行构建和部署。

我添加了一个 buildspec.yml项目根目录下的文件:
version: 0.1
phases:
install:
commands:
- npm install
- npm install -g serverless
- echo install done
build:
commands:
- serverless deploy
- echo build done

然后,使用 AWS 控制台/Web 界面,我定义了一个引用 git 存储库的代码构建项目。

这样做时,AWS 创建了一个具有以下策略的 IAM 角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Resource": [
"arn:aws:logs:eu-west-1:************:log-group:/aws/codebuild/my-api-build",
"arn:aws:logs:eu-west-1:************:log-group:/aws/codebuild/my-api-build:*"
],
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
]
},
{
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::codepipeline-eu-west-1-*"
],
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:GetObjectVersion"
]
},
{
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::my-api-artifacts/*"
],
"Action": [
"s3:PutObject"
]
}
]
}

我们开工吧...

因此,我在 CodeBuild 项目上按了“开始构建”并收到以下错误:

错误 1:
ServerlessError: User: arn:aws:sts::************:assumed-role/codebuild-my-api-build-service-role/AWSCodeBuild-********-****-****-****-************ is not authorized to perform: cloudformation:DescribeStackResources on resource: arn:aws:cloudformation:eu-west-1:************:stack/my-api-development/*
我通过将以下内容添加到由代码构建创建的策略中来“修复”...
{
"Effect": "Allow",
"Resource": [
"arn:aws:cloudformation:eu-west-1:*"
],
"Action": [
"cloudformation:*"
]
}

错误 2:

再次按下 Start Build 并得到:
An error occurred while provisioning your stack: ServerlessDeploymentBucket - API: s3:CreateBucket Access Denied.
我通过将以下内容添加到由代码构建创建的策略中来“修复”...
{
"Effect": "Allow",
"Resource": [
"arn:aws:cloudformation:eu-west-1:*"
],
"Action": [
"cloudformation:*"
]
}

错误 3:
Serverless Error --------------------------------------- Missing required key 'Bucket' in params
最后:我的实际问题
  • 什么Missing required key 'Bucket' in params意思?我应该去哪里找?
  • 我对错误 1 ​​和 2 的“修复”是否正常?我是 AWS 的一位,因此是 IAM 新手,所以我在编辑策略时没有那么自信。
  • 最佳答案

    @Unsigned - 感谢您的评论。

    虽然您删除和重新部署的建议没有奏效,但 link您发布的确实提到拥有 S3 权限。

    我向我的代码构建角色和 k'boom 添加了完整的 S3 访问权限,它起作用了。

    关于amazon-iam - 无服务器框架和 CodeBuild : Missing required key 'Bucket' in params,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45236308/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com