#google-app-engine #google-cloud-sql #gcloud
#google-app-engine #google-cloud-sql #gcloud
Вопрос:
Я установил gcloud
для управления взаимосвязью между моими экземплярами CloudSQL и моими приложениями GAE.
У меня есть несколько приложений, которым необходимо подключиться к одной из баз данных, и я пытаюсь автоматизировать процесс добавления новых приложений GAE, разрешенных в этой базе данных, в рамках оптимизации процесса развертывания.
Я пытаюсь использовать patch
команду, но для массивов она перезаписывает полное значение, поэтому мне нужно передать полный массив. За исключением того, что я не могу определить точный синтаксис для этого. Это мое лучшее предположение.
$ gcloud sql instances patch projectname:databasename --authorized-gae-apps="testappid1,testappid2"
This command will change the instance settings.
All arrays must be fully-specified. Any previous data in an array will be overwritten with the given list.
The following JSON message will be used for the patch API method.
{'instance': 'test', 'settings': {'authorizedGaeApplications': ['testappid1,testappid2']}}
Do you want to continue (Y/n)? Y
ERROR: (gcloud.sql.instances.patch) ResponseError: status=400, code=Bad Request, reason=invalid
message=Invalid Value
Похоже, что он отправляет приложения в виде строки внутри массива, а не отделяет каждое значение. Я пробовал несколько других подходов, но ни один из них не смог успешно перевести аргументы командной строки в массивы с несколькими элементами в формате JSON.
Если я сделаю что-то подобное (установлю только одно приложение), это сработает, но оно перезапишет полное значение, чего я не хочу:
gcloud sql instances patch projectname:databasename --authorized-gae-apps="testappid1"
Как я могу получить gcloud
разрешение указывать несколько авторизованных приложений GAE из командной строки?
Ответ №1:
Попробуйте это так:
gcloud sql instances patch projectname:databasename --authorized-gae-apps testappid1 testappid2
Комментарии:
1. Да, это сделало это. Спасибо!