Развертывание приложения GCloud с использованием конвейера Bitbucket

Я хочу развернуть свое приложение, используя конвейер битбакета в производственной среде.

Я следовал инструкциям, данным в https://cloud.google.com/solutions/continuous-delivery-bitbucket-app-engine но это развертывание моего приложения в промежуточной среде.

Мой файл конвейера

image: python:2.7

pipelines:
  branches:
    master:
      - step:
          script: # Modify the commands below to build your repository.
            # Downloading the Google Cloud SDK
            - curl -o /tmp/google-cloud-sdk.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-155.0.0-linux-x86_64.tar.gz
            - tar -xvf /tmp/google-cloud-sdk.tar.gz -C /tmp/
            - /tmp/google-cloud-sdk/install.sh -q
            - source /tmp/google-cloud-sdk/path.bash.inc
            # Authenticating with the service account key file
            - echo ${GOOGLE_CLIENT_SECRET} > client-secret.json
            - gcloud auth activate-service-account --key-file client-secret.json
            # Linking to the Google Cloud project
            - gcloud config set project $CLOUDSDK_CORE_PROJECT
            - gcloud -q app deploy app.yaml

Это показывает мне следующую ошибку

You are about to deploy the following services:
 - my-app/default/232326565655 (from [/opt/atlassian/pipelines/agent/build/app.yaml])
     Deploying to URL: [https://my-app.appspot.com]
Beginning deployment of service [default]...
Some files were skipped. Pass `--verbosity=info` to see which ones.
You may also view the gcloud log file, found at
[/root/.config/gcloud/logs/2018.02.05/05.25.49.374053.log].
ERROR: gcloud crashed (UploadError): Error uploading files: HttpError accessing <https://www.googleapis.com/storage/v1/b/staging.my-app.appspot.com/o?alt=json&maxResults=1000>: response: <{'status': '403', 'content-length': '410', 'expires': 'Mon, 05 Feb 2018 05:25:52 GMT', 'vary': 'Origin, X-Origin', 'server': 'UploadServer', 'x-guploader-uploadid': 'UPLOADER_ID', 'cache-control': 'private, max-age=0', 'date': 'Mon, 05 Feb 2018 05:25:52 GMT', 'alt-svc': 'hq=":443"; ma=2592000; quic=51303431; quic=51303339; quic=51303338; quic=51303337; quic=51303335,quic=":443"; ma=2592000; v="41,39,38,37,35"', 'content-type': 'application/json; charset=UTF-8'}>, content <{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "forbidden",
    "message": "bitbucket-authorization@my-app.iam.gserviceaccount.com does not have storage.objects.list access to staging.my-app.appspot.com."
   }
  ],
  "code": 403,
  "message": "bitbucket-authorization@my-app.iam.gserviceaccount.com does not have storage.objects.list access to staging.my-app.appspot.com."
 }
}

1 ответ

Следуя тому же руководству и основываясь на представленных вами ошибках, учетная запись службы, которую вы использовали ""bitbucket-authorization@my-app.iam.gserviceaccount.com", не имела привилегий для доступа к промежуточным сегментам.

Убедитесь, что для этой учетной записи службы из облачной консоли назначены роли App Engine > Администратор и хранилище App Engine > Администраторы объектов хранилища.

Последнее, что я заметил, когда использовал новый проект для этого учебника, было то, что мне тоже пришлось вручную включить API администрирования Google App Engine.

РЕДАКТИРОВАТЬ: Вы можете использовать флаг --bucket=gs://BUCKETNAME в сценарии, используемом bitbucket для развертывания:

ie -> gcloud app deploy --bucket="gs://BUCKETNAME"

Другие вопросы по тегам