Развертывание приложения 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"