Google Deployment Manager Cloud Scheduler 类型

Google Deployment Manager Cloud Scheduler type

我看到 GCP 没有提供时间表类型。我想知道创建模板(复合类型或类似模板)以提供 Cloud Scheduler 类型的步骤。我知道 Google 已经提供了 an example

如果可以通过代码做到这一点它可以利用 python client library 虽然它在文档中说这个库不可用,但我可以在代码中内联它。

我想不出一种方法来验证 google API 来执行此类请求。

简而言之,我的问题是如何为云创建 Deployment Manager 类型?我知道这有点含糊。只是想知道它是否可行。

另一方面,我在哪里可以找到这个的官方开发 GCP 服务?

为了完整起见,这里还有相关的 Github issue

根据 GCP's documentation,尚不支持 Cloud Scheduler 类型。

除了我在上面链接的那个之外,我不知道这个 GCP 服务有任何官方开发。话虽如此,我将为您的用例创建一个 feature request。请添加我遗漏的任何其他内容,您可以使用相同的线程与部署管理器团队进行交流。

我一直在寻找此功能,并认为我应该就该主题提供最新的答案。

感谢 https://whosebug.com/users/9253778/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

有关 Cloud Scheduler 的更多 properties 阅读文档: https://cloud.google.com/scheduler/docs/reference/rpc/google.cloud.scheduler.v1#google.cloud.scheduler.v1.HttpTarget