Я успешно проверил ваш код и считаю, что проблема заключалась в том, что вы пытались создать / обновить корзину, принадлежащую другому пользователю, принадлежащему к другому проекту, на который ваша учетная запись службы не имеет власти.
Поэтому, пожалуйста, попробуйте повторно развернуть изменение имени, которое, вероятно, является уникальным, и дайте мне знать, если это решит проблему. Это может быть проблемой в некотором сценарии, потому что вы либо выбираете имя довольно долго, либо существует риск, который уже принят.
Обратите внимание , что вам нужно изменить имя корзины, поскольку она должна быть уникальной для всего проекта всех пользователей.
Это может показаться чрезмерным требованием, но позволяет создать статический веб-сайт или сослаться на файл со стандартным URL-адресом:
Исходя из ошибки трассировки, я считаю, что это проблема, вы пытаетесь создать корзину, которая не существует, и вы не владеете.
Обратите внимание , что, если вы удалите разрешения из учетной записи службы, вы не получите сообщение о том, что учетная запись службы не имеет никакого влияния на корзину:
xxx@cloudservices.gserviceaccount.com does not have storage.buckets.get access to posts.
Но вместо этого появляется сообщение о том, что учетная запись службы не включена в проект:
Service account xxx@cloudservices.gserviceaccount.com is not authorized
to take actions for project xxx. Please add xxx@cloudservices.gserviceaccount.com
as an editor under project xxx using Google Developers Console
Обратите внимание , что, если вы попытаетесь создать ведро, которое у вас уже есть, проблем не будет.
$ gcloud deployment-manager deployments create posts22 --config posts.yml
The fingerprint of the deployment is xxx==
Waiting for create [operation-xxx-xxx-xxx-xxx]...done.
Create operation operation-xxx-xxx-xxx-xxx completed successfully.
NAME TYPE STATE ERRORS INTENT
nomebuckettest4536 storage.v1.bucket COMPLETED []