Тип планировщика облака Google Deployment Manager

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

Если это возможно сделать с помощью кода. Он может использовать клиентскую библиотеку Python, хотя в документации сказано, что эта библиотека недоступна, я мог бы вставить ее в код.

Я не могу придумать способ аутентификации на основе API Google для выполнения таких запросов.

Короче говоря, у меня вопрос: как настроить тип менеджера развертывания для облака? Я знаю, это немного расплывчато. Просто хочу знать, будет ли это выполнимо.

С другой стороны, где я могу найти официальную разработку для этого сервиса GCP?

Для полноты вот также связанная проблема Github

1 ответ

Решение

Тип Cloud Scheduler пока не поддерживается в соответствии с документацией GCP.

Мне не известны какие-либо официальные разработки для этой службы GCP, кроме той, которую я связал выше. При этом я создам запрос функции для вашего варианта использования. Пожалуйста, добавьте любые дополнительные, которые я пропустил, и вы можете использовать тот же поток для связи с командой администратора развертывания.

Я искал эту функцию и подумал, что должен дать актуальный ответ по этой теме.

Спасибо dany L за запрос функции, который привел меня к этому ответу.

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

Вот отрывок из https://issuetracker.google.com/issues/123013878:

  - type: gcp-types/cloudscheduler-v1:projects.locations.jobs
    name: <YOUR_JOB_NAME_HERE>
    properties:
      parent: projects/<YOUR_PROJECT_ID_HERE>/locations/<YOUR_REGION_HERE>
      name: <YOUR_JOB_NAME_HERE>
      description: <YOUR_JOB_DESCRIPTION_HERE>
      schedule: "0 2 * * *" # daily at 2 am
      timeZone: "Europe/Amsterdam"
      pubsubTarget:
        topicName: projects/<YOUR_PROJECT_ID_HERE>/topics/<YOUR_EXPECTED_TOPIC_HERE>
        data: aGVsbG8hCg== # base64 encoded "hello!"

Вы можете использовать общие YAML файл с deployment-manager:

config.yaml:

resources:
  - name: <<YOUR_JOB_NAME>>
    type: gcp-types/cloudscheduler-v1:projects.locations.jobs # Cloud scheduler
    properties:
      parent: "projects/<<YOUR_PROJECT_NAME>>/locations/<<YOUR_LOCATION_ID>>"
      description: "<<JOB_DESCRIPTION_OPTIONAL>>"
      schedule: "* */2 * * *" # accepts 'cron' format
      http_target:
        http_method: "GET"
        uri: "<<URI_TO_YOUR_FUNCTION>>" # trigger link in cloud functions

Вы даже можете добавить, чтобы создать Pub/Sub работа и другие с deployment-manager просто добавь:

  - name: <<TOPIC_NAME>>
    type: pubsub.v1.topic
    properties:
      topic: <<TOPIC_NAME>>
  - name: <<NAME>>
    type: pubsub.v1.subscription
    properties:
      subscription: <<SUBSCRIPTION_NAME>>
      topic: $(ref.<<TOPIC_NAME>>.name)
      ackDeadlineSeconds: 600

ПРИМЕЧАНИЕ: чтобы получить <>, используйте gcloud app describe.

Для развертывания используйте:gcloud deployment-manager deployments create <<DEPLOYMENT_NAME>> --config=<<PATH_TO_YOUR_YAML_FILE>>

Для удаления используйте:gcloud deployment-manager deployments delete <<DEPLOYMENT_NAME>> -q

Для большего properties на Cloud Schedulerпрочтите документацию: https://cloud.google.com/scheduler/docs/reference/rpc/google.cloud.scheduler.v1#google.cloud.scheduler.v1.HttpTarget

Другие вопросы по тегам