Рейтинг:0

Развертывание GCP для создания сегмента хранилища завершается сбоем из-за отсутствия доступа к storage.buckets.get

флаг cn

Я хочу создать корзину облачного хранилища программно с помощью диспетчера развертывания, но развертывание завершается со следующей ошибкой:

ОШИБКА: (gcloud.deployment-manager.deployments.create) Ошибка в работе [operation-1626165906845-5c6fd413930ca-1a833b6c-81671664]: ошибки:
- код: RESOURCE_ERROR
  расположение: /deployments/example-config/resources/storage-bucket
  сообщение: '{"ResourceType":"storage.v1.bucket","ResourceErrorCode":"403","ResourceErrorMessage":{"код":403,"ошибки":[{"домен":"глобальный"," сообщение":"[email protected]
    не имеет доступа к storage.buckets.get к корзине Google Cloud Storage.","причина":"запрещено"}],"сообщение":"[email protected]
    не имеет доступа storage.buckets.get к корзине Google Cloud Storage.","statusMessage":"Forbidden","requestPath":"https://storage.googleapis.com/storage/v1/b/storage-bucket ","httpMethod":"ПОЛУЧИТЬ","предложение":"Рассмотреть
    предоставление разрешений для [email protected]"}}'

Однако я добавил роли/хранение-администратор к учетной записи, упомянутой в ошибке, и в соответствии с политикой устранения неполадок доступ предоставляется для storage.buckets.get Вызов API:

введите описание изображения здесь

Это батат файл, который я использую:

импорт:
  - путь: шаблон.jinja

Ресурсы:
  - название: шаблон
    тип: шаблон.jinja
    характеристики:
      место хранения:
        ведро: qa-bucket-68586

и это Джиндзя шаблон:

Ресурсы:
  - имя: хранилище-ведро
    тип: storage.v1.bucket
    характеристики:
      вид: хранилище # ведро
      имя: {{ свойства["хранилище"]["ведро"] }}
      местонахождение: ЕС
      номер_проекта: {{ env["номер_проекта"] }}
      класс хранения: СТАНДАРТ
Wojtek_B avatar
флаг jp
Что произошло после того, как вы предоставили учетной записи роль `storage.admin`? Ошибка изменилась?
Carlos Rodriguez avatar
флаг cn
Нет, ошибка осталась прежней.
John Hanley avatar
флаг cn
Ведро находится в другом проекте? Имя корзины правильное?
Carlos Rodriguez avatar
флаг cn
Да, проект правильный, и имя ведра в порядке.
Carlos Rodriguez avatar
флаг cn
Я добавил самые маленькие файлы jinja и yaml, которые воспроизводят проблему.
John Hanley avatar
флаг cn
Ключ не в том, если название проекта правильное. Какому проекту принадлежит ведро?
Carlos Rodriguez avatar
флаг cn
Я хочу создать ведро, поэтому на момент выполнения развертывания ни один проект не владеет ведром. Шаги выглядят следующим образом: я выбираю проект, используя `gcloud config set project` на терминале моей машины; Я проверяю, что проект выбран с помощью `gcloud config get-value project`; Я проверяю, что учетная запись в этом проекте имеет роль `storage.admin`; а затем я запускаю `развертывания диспетчера развертывания gcloud, создайте пример-конфигурации --config развертывания.yaml`
Рейтинг:0
флаг jp

Основываясь на вашем вопросе, я попытался воспроизвести вашу проблему, но потерпел неудачу, что означает, что я могу создать корзину хранилища с помощью DM.

Я использовал более простой подход:

Ресурсы:
- тип: хранилище.v1.bucket
  имя: тб111
  характеристики:
    проект: название проекта
    название: ТБ111-1

Я не использовал никаких переменных для передачи имени проекта, так что, возможно, это сработало.

В результате:

wb@cloudshell:~ (proj-name)$ развертывания диспетчера развертывания gcloud создать deploy-test111 --config b1.yaml
Отпечаток развертывания: b'fcW0t5_5DD75iIGyHz='
Ожидание создания [операция-1626272156399-fe30b8a9-47-53bbc8c4]... выполнено.
Операция создания operation-1626272156399-fe30b8a9-47-53bbc8c4 успешно завершена.
НАЗВАНИЕ ТИП СОСТОЯНИЕ ОШИБКИ НАМЕРЕНИЕ
tb111 storage.v1.bucket ВЫПОЛНЕНО []

Я могу видеть и получать доступ к нему из пользовательского интерфейса консоли.

Попробуйте для начала просто "жестко закодировать" название вашего проекта в Джиндзя файлы или используйте мой для запуска, и это должно работать.

Carlos Rodriguez avatar
флаг cn
Спасибо за предложение, Wojtek_B. После некоторых проб и ошибок я нашел ошибку: проблема была с `name: storage-bucket`. Имя корзины должно быть глобально уникальным, а `storage-bucket` уже занято. Я также совершил глупую ошибку, указав свойство `name` дважды (первое с `storage-bucket`, а второе с `{{ properties["storage"]["bucket"] }}`). Я удалил второй и дал уникальный номер ведру, и тогда это сработало. Спасибо!

Ответить или комментировать

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