Конвейеры Bitbucket, развертываемые в gCloud AppEngine, вызывают [13] Произошла внутренняя ошибка

Я пытаюсь использовать конвейеры Bitbucket в своем проекте. Я использую Nodejs.

Когда я запускаю gcloud app deploy вручную с Mac или Windows - все работает нормально, развертывание успешно завершается. Но из конвейеров битбакета происходит сбой с Ответом об ошибке: [13] Произошла внутренняя ошибка.

Вот трассировка стека, которую я получил, запустив gcloud app deploy --verbosity=debug:

Updating service [default]...
.DEBUG: Operation [apps/my-project/operations/a68a837e-edcf-4987-83db-d9b47f4309ae] not complete. Waiting to retry.
.......DEBUG: Operation [apps/my-project/operations/a68a837e-edcf-4987-83db-d9b47f4309ae] complete. Result: {
    "metadata": {
        "target": "apps/my-project/services/default/versions/20180915t180908", 
        "method": "google.appengine.v1.Versions.CreateVersion", 
        "user": "[email protected]", 
        "insertTime": "2018-09-15T18:09:46.693Z", 
        "endTime": "2018-09-15T18:09:49.655Z", 
        "@type": "type.googleapis.com/google.appengine.v1.OperationMetadataV1"
    }, 
    "done": true, 
    "name": "apps/my-project/operations/a68a837e-edcf-4987-83db-d9b47f4309ae", 
    "error": {
        "message": "An internal error occurred.", 
        "code": 13
    }
}
failed.

DEBUG: (gcloud.app.deploy) Error Response: [13] An internal error occurred.
Traceback (most recent call last):
  File "/tmp/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 839, in Execute
    resources = calliope_command.Run(cli=self, args=args)
  File "/tmp/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 770, in Run
    resources = command_instance.Run(args)
  File "/tmp/google-cloud-sdk/lib/surface/app/deploy.py", line 90, in Run
    parallel_build=False)
  File "/tmp/google-cloud-sdk/lib/googlecloudsdk/command_lib/app/deploy_util.py", line 625, in RunDeploy
    flex_image_build_option=flex_image_build_option)
  File "/tmp/google-cloud-sdk/lib/googlecloudsdk/command_lib/app/deploy_util.py", line 431, in Deploy
    extra_config_settings)
  File "/tmp/google-cloud-sdk/lib/googlecloudsdk/api_lib/app/appengine_api_client.py", line 207, in DeployService
    poller=done_poller)
  File "/tmp/google-cloud-sdk/lib/googlecloudsdk/api_lib/app/operations_util.py", line 315, in WaitForOperation
    sleep_ms=retry_interval)
  File "/tmp/google-cloud-sdk/lib/googlecloudsdk/api_lib/util/waiter.py", line 254, in WaitFor
    sleep_ms, _StatusUpdate)
  File "/tmp/google-cloud-sdk/lib/googlecloudsdk/api_lib/util/waiter.py", line 316, in PollUntilDone
    sleep_ms=sleep_ms)
  File "/tmp/google-cloud-sdk/lib/googlecloudsdk/core/util/retry.py", line 229, in RetryOnResult
    if not should_retry(result, state):
  File "/tmp/google-cloud-sdk/lib/googlecloudsdk/api_lib/util/waiter.py", line 310, in _IsNotDone
    return not poller.IsDone(operation)
  File "/tmp/google-cloud-sdk/lib/googlecloudsdk/api_lib/app/operations_util.py", line 184, in IsDone
    encoding.MessageToPyValue(operation.error)))
OperationError: Error Response: [13] An internal error occurred.
ERROR: (gcloud.app.deploy) Error Response: [13] An internal error occurred.

Мой bitbucket-pipelines.yml:

pipelines:
  default:
    - step:
        name: Test and deployment
        image: node:8.9
        script: # Modify the commands below to build your repository.
          - npm install
          - npm test
          - npm build
          # 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-216.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
          # Setup
          - echo $GCLOUD_CLIENT_SECRET > client-secret.json
          - gcloud auth activate-service-account --key-file client-secret.json
          - gcloud config set project $GCLOUD_PROJECT
          - gcloud -q app deploy --verbosity=debug

Мой .gcloudignore:

.gcloudignore
.git
.gitignore

# Node.js dependencies:
node_modules/
design/

Я нашел какое-то решение в StackOverflow и Google, но ничего не работает. Я пробовал разные версии Google Cloud SDK - результат тот же. Спасибо за любую помощь заранее.


person Vladimir Makushev    schedule 15.09.2018    source источник
comment
Эй, ты нашел решение? Не могли бы вы поделиться с сообществом?   -  person A.Queue    schedule 24.09.2018
comment
К сожалению, у меня все еще есть эта проблема.   -  person Vladimir Makushev    schedule 27.09.2018
comment
Я думаю, это могло быть связано с невыполнением одной из ваших квот. Вам понадобится кто-нибудь, чтобы разобраться в этом, поэтому я рекомендую вам открыть проблему в частной проблеме трекер, указав свой номер проекта (а не идентификатор проекта).   -  person A.Queue    schedule 28.09.2018


Ответы (1)


Наконец, я решил это.

TL; DR:

Добавьте роль Cloud Build Editor для своего участника Bitbucket на странице IAM и администратора.


Я обновил версию GCloud до 218, и она начала отображать дополнительную информацию об ошибке (а не только внутреннюю ошибку):

OperationError: Error Response: [13] Permission to create cloud build is denied. 'Cloud Build Editor' role is required for the deployment: https://cloud.google.com/cloud-build/docs/securing-builds/configure-access-control#permissions.

Проблема заключается в отсутствии разрешений для участника bitbucket в GCloud. Похоже, это недавно добавленное требование, потому что ни в одном руководстве нет информации о.

Чтобы решить эту проблему, вы должны добавить роль Cloud Build Editor для своего участника Bitbucket на странице IAM и администратора.

Надеюсь, это поможет.

person Vladimir Makushev    schedule 02.10.2018