Serverless.com 使用 Bitbucket 管道
Serverless.com with Bitbucket Pipelines
我的 Serverless application that uses NodeJS. Everything builds just find in Bitbucket Pipelines 设置非常简单,除了通过 serverless deploy
的标准命令进行部署外,我收到以下错误消息:
User: arn:aws:iam::123456789012:user/bitbucket-build-user is not authorized to perform: cloudformation:DescribeStackResources on resource: arn:aws:cloudformation:my-region: 123456789012:stack/mylambda-dev/*
在本地它工作得很好。这是 管道 配置:
image:
name: mydocker/serverless-docker:latest
username: $MY_DOCKER_HUB_USERNAME
password: $MY_DOCKER_HUB_PASSWORD
email: $MY_DOCKER_HUB_EMAIL
pipelines:
default:
- step:
script:
- npm install
- npm run lint
branches:
master:
- step:
script:
- npm install
- npm run lint
- serverless config credentials --overwrite --provider aws --key $MY_AWS_KEY --secret $MY_AWS_SECRET
- serverless deploy
我在这里遗漏了什么吗?
由于 Serverless 使用 AWS CloudFormation 进行完全部署(您使用 serverless deploy
执行的部署),bitbucket-build-user 必须具有特定权限才能管理CloudFormation 堆栈。因此,至少,您需要附加一个如下所示的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudformation:Describe*",
"cloudformation:List*",
"cloudformation:Get*",
"cloudformation:PreviewStackUpdate",
"cloudformation:CreateStack",
"cloudformation:UpdateStack",
"cloudformation:DeleteStack"
],
"Resource": "*"
}
}
查看 https://github.com/serverless/serverless/issues/1439 以了解 bitbucket-build-user 可能需要哪些权限。
就个人而言,我只是使用 https://github.com/dancrumb/generator-serverless-policy 生成这些策略,而不是每次都手动编写它们。
我的 Serverless application that uses NodeJS. Everything builds just find in Bitbucket Pipelines 设置非常简单,除了通过 serverless deploy
的标准命令进行部署外,我收到以下错误消息:
User: arn:aws:iam::123456789012:user/bitbucket-build-user is not authorized to perform: cloudformation:DescribeStackResources on resource: arn:aws:cloudformation:my-region: 123456789012:stack/mylambda-dev/*
在本地它工作得很好。这是 管道 配置:
image:
name: mydocker/serverless-docker:latest
username: $MY_DOCKER_HUB_USERNAME
password: $MY_DOCKER_HUB_PASSWORD
email: $MY_DOCKER_HUB_EMAIL
pipelines:
default:
- step:
script:
- npm install
- npm run lint
branches:
master:
- step:
script:
- npm install
- npm run lint
- serverless config credentials --overwrite --provider aws --key $MY_AWS_KEY --secret $MY_AWS_SECRET
- serverless deploy
我在这里遗漏了什么吗?
由于 Serverless 使用 AWS CloudFormation 进行完全部署(您使用 serverless deploy
执行的部署),bitbucket-build-user 必须具有特定权限才能管理CloudFormation 堆栈。因此,至少,您需要附加一个如下所示的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"cloudformation:Describe*",
"cloudformation:List*",
"cloudformation:Get*",
"cloudformation:PreviewStackUpdate",
"cloudformation:CreateStack",
"cloudformation:UpdateStack",
"cloudformation:DeleteStack"
],
"Resource": "*"
}
}
查看 https://github.com/serverless/serverless/issues/1439 以了解 bitbucket-build-user 可能需要哪些权限。
就个人而言,我只是使用 https://github.com/dancrumb/generator-serverless-policy 生成这些策略,而不是每次都手动编写它们。