【问题标题】:Serverless.com with Bitbucket Pipelines带有 Bitbucket 管道的 Serverless.com
【发布时间】:2017-09-08 05:34:08
【问题描述】:

我为使用 NodeJS 的 Serverless 应用程序设置了一个非常简单的设置。除了通过serverless deploy 的标准命令进行部署外,所有构建都可以在Bitbucket Pipelines 中找到,我在其中收到以下错误消息:

用户:arn:aws:iam::123456789012:user/bitbucket-build-user 无权执行: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

这里有什么我遗漏的吗?

【问题讨论】:

    标签: amazon-web-services aws-lambda serverless-framework bitbucket-pipelines


    【解决方案1】:

    由于 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 来生成这些策略,而不是每次都手动编写它们。

    【讨论】:

    • 奇怪的是,它在本地工作,但。我将我的 AWS 凭证导入到构建映像中,而我自己的本地用户也无权访问。我在本地使用 export AWS_PROFILE=aws_lambda 并试图在我的 Docker 映像中模拟它。不过,我一定会试试的。
    • 工作就像一个魅力!谢谢。
    猜你喜欢
    • 1970-01-01
    • 2019-07-09
    • 2020-09-05
    • 2021-01-10
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    相关资源
    最近更新 更多