#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:
Я столкнулся с этим недавно.
Выставление счетов не всегда является проблемой. Иногда, если изменений не происходит, и вы пытаетесь снова развернуть ту же версию, также возникает эта проблема.
Два обходных пути (не решения)
- Используйте случайную схему управления версиями вместо —version SOME_STATIC_VALUE
- Убедитесь, что в развертываемом коде есть некоторые изменения.
Комментарии:
1. у меня это сработало — изменение названия версии не помогло, тривиальное редактирование кода решило проблему.
Ответ №2:
Я столкнулся с той же проблемой, пока выполнение других команд GCP не привело к выводу (для меня), что GCP отказался от развертывания, поскольку с моим проектом не была связана учетная запись для выставления счетов. App Engine и журналы не сообщили мне об этом, а просто рассказали о некоторых проблемах с docker push. Попробуйте проверить, настроена ли у вас активная учетная запись для выставления счетов и есть ли какие-либо проблемы с этой учетной записью для выставления счетов.
Привязка платежной учетной записи решила проблему для меня, и я смог нормально развернуть свои материалы с помощью App Engine.
Ответ №3:
Исправлена эта проблема путем удаления контейнера-нарушителя в реестре контейнеров Google. Это, очевидно, приводит к тому, что GCP повторно извлекает изображение!