Не удается развернуть проект в соответствии со стандартом Google Cloud App Engine

#django #google-app-engine #google-cloud-platform #gcloud

#django #google-app-engine #google-облачная платформа #gcloud

Вопрос:

У меня есть проект, который работает нормально, но я хочу внести некоторые изменения и устранить некоторые ошибки, поэтому я попытался развернуть свое приложение с помощью Google Cloud SDK (gcloud app deploy)

 Services to deploy:

descriptor:      [/home/projects/Myproject/app.yaml]
source:          [/home/projects/Myproject/]
target project:  [my-project]
target service:  [default]
target version:  [20200902t153320]
target url:      [https://my-project.uc.r.appspot.com]


Do you want to continue (Y/n)?  

Beginning deployment of service [default]...
╔════════════════════════════════════════════════════════════╗
╠═ Uploading 2 files to Google Cloud Storage                ═╣
╚════════════════════════════════════════════════════════════╝
File upload done.
Updating service [default]...failed.                                                               
ERROR: (gcloud.app.deploy) Error Response: [9] Cloud build 3ebf37fb-b18d-4c68-b352d-10bd8758f90b0 status: FAILURE
Error type: OK
Full build logs: https://console.cloud.google.com/cloud-build/builds/3ebf37fb-b18d-4c68-b32d-10bd8s78f90b0?project=my-projectid
  

Вчера это работало нормально, но теперь выдает мне эту ошибку, и я не могу вносить какие-либо изменения:

 ERROR: build step 6 "us.gcr.io/gae-runtimes/buildpacks/python38/builder:python38_20200816_3_8_5_RC01" failed: step exited with non-zero status: 246
ERROR
Finished Step #6 - "exporter"
Step #6 - "exporter": ERROR: failed to export: failed to write image to the following tags: [us.gcr.io/my-project/app-engine-tmp/app/ttl-2h/default/buildpack-app:latest: GET https://us.gcr.io/v2/token?scope=repository%3Amy-project%2Fapp-engine-tmp%2Fapp%2Fttl-2h%2Fdefault%2Fbuildpack-app%3Apush%2Cpullamp;scope=repository%3Agae-runtimes%2Fbuildpacks%2Fpython38%2Frun%3Apullamp;service=us.gcr.io: DENIED: Token exchange failed for project 'my-project'. Access denied.]
Step #6 - "exporter": *** Digest: sha256:bd8121f23cb362683e7c32a8bbdf2a900606373f8edfsdf36fe0ffb17014
Step #6 - "exporter": 
Step #6 - "exporter":       us.gcr.io/my-project/app-engine-tmp/app/ttl-2h/default/buildpack-app:latest - GET https://us.gcr.io/v2/token?scope=repository%3Amy-project%2Fapp-engine-tmp%2Fapp%2Fttl-2h%2Fdefault%2Fbuildpack-app%3Apush%2Cpullamp;scope=repository%3Agae-runtimes%2Fbuildpacks%2Fpython38%2Frun%3Apullamp;service=us.gcr.io: DENIED: Token exchange failed for project 'my-project'. Access denied.
Step #6 - "exporter": *** Images (sha256:bd8121f23cb362683e7c32adfssd73f8ea51326f36fe0ffb17014):
  

Я попытался изменить свою аутентификацию, поэтому я использовал gcloud auth revoke и gcloud app login, чтобы обновить их. Я также удалил файлы в хранилище и загрузил их снова. Я даже пытался загрузить код на GitHub и выполнить развертывание оттуда с помощью активатора. Похоже, что замечание сработало.

У проекта есть все разрешения. Учетные записи служб включены. И я просто не понимаю, что не так. Я не использую Docker, поэтому я не менял ни одну из конфигураций по умолчанию в стандартном App Engine

Комментарии:

1. 1) Проверьте, какую учетную запись вы используете gcloud auth list . 2) Затем отредактируйте свой вопрос с ролями, назначенными этой учетной записи. Убедитесь, что учетной записи (идентификатору участника) назначена по крайней мере App Engine Deployer роль. cloud.google.com/appengine/docs/standard/python /…

2. 3) Убедитесь, что вы настроили правильный проект gcloud config get-value project и что вы используете идентификатор проекта, а не НАЗВАНИЕ ПРОЕКТА gcloud projects list .

Ответ №1:

Я столкнулся с этим недавно.

Выставление счетов не всегда является проблемой. Иногда, если изменений не происходит, и вы пытаетесь снова развернуть ту же версию, также возникает эта проблема.

Два обходных пути (не решения)

  1. Используйте случайную схему управления версиями вместо —version SOME_STATIC_VALUE
  2. Убедитесь, что в развертываемом коде есть некоторые изменения.

Комментарии:

1. у меня это сработало — изменение названия версии не помогло, тривиальное редактирование кода решило проблему.

Ответ №2:

Я столкнулся с той же проблемой, пока выполнение других команд GCP не привело к выводу (для меня), что GCP отказался от развертывания, поскольку с моим проектом не была связана учетная запись для выставления счетов. App Engine и журналы не сообщили мне об этом, а просто рассказали о некоторых проблемах с docker push. Попробуйте проверить, настроена ли у вас активная учетная запись для выставления счетов и есть ли какие-либо проблемы с этой учетной записью для выставления счетов.

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

Ответ №3:

Исправлена эта проблема путем удаления контейнера-нарушителя в реестре контейнеров Google. Это, очевидно, приводит к тому, что GCP повторно извлекает изображение!