Обновление файла YAML для конечных точек Google: существует ли более простой способ - PullRequest
1 голос
/ 21 января 2020

При использовании конечных точек Google с Cloud Run для предоставления службы контейнеров создается файл YAML (формат stagger 2.0) для указания путей со всеми конфигурациями. Для КАЖДОЕ ИЗМЕНЕНИЕ вот что я делаю (основываясь на документации (https://cloud.google.com/endpoints/docs/openapi/get-started-cloud-functions)

Шаг 1: Развертывание конфигурации конечных точек

gcloud endpoints services deploy openapi-functions.yaml \
    --project ESP_PROJECT_ID

Это дает мне следующий вывод:

Service Configuration [CONFIG_ID] uploaded for service [CLOUD_RUN_HOSTNAME]

Затем,

Шаг 2: Загрузка сценария на локальный компьютер

chmod +x gcloud_build_image
./gcloud_build_image -s CLOUD_RUN_HOSTNAME \
    -c CONFIG_ID -p ESP_PROJECT_ID

Затем

Шаг 3: Повторно развернуть службу Cloud Run

gcloud run deploy CLOUD_RUN_SERVICE_NAME \
  --image="gcr.io/ESP_PROJECT_ID/endpoints-runtime-serverless:CLOUD_RUN_HOSTNAME-CONFIG_ID" \
  --allow-unauthenticated \
  --platform managed \
  --project=ESP_PROJECT_ID

Это процесс для каждого изменения пути API? Или Есть ли более простой прямой способ обновления файла YAML и его загрузки куда-нибудь?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 января 2020

Когда вы используете изображение облачной конечной точки по умолчанию, как описано в документации , параметр --rollout_strategy=managed устанавливается автоматически.

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

0 голосов
/ 21 января 2020

На основании документации, да, это будет процесс для каждого изменения пути API. Однако это может измениться в будущем, поскольку эта функция в настоящее время находится на бета-версии, как указано в документации, которой вы поделились.

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

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

Надеюсь, вы найдете это полезным.

...