Google Deployment Manager Cloud Scheduler类型

时间:2019-01-16 12:19:42

标签: api google-deployment-manager google-cloud-scheduler

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

如果可以通过代码进行操作,则可以使用python client library,尽管它在文档中说该库不可用,我可以将其内联到代码中。

我想不出一种方法来针对Google API进行身份验证以进行此类请求。

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

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

为完整起见,这也是相关的Github issue

3 个答案:

答案 0 :(得分:1)

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

除我上面链接的内容外,我不知道此GCP服务的任何正式开发。话虽如此,我将为您的用例创建一个feature request。请添加我错过的所有其他内容,您可以使用同一线程与Deployment Manager团队进行通信。

答案 1 :(得分:1)

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

感谢https://stackoverflow.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!"

答案 2 :(得分:1)

您可以将常规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

注意:要获取<< YOUR_LOCATION_ID >>,请使用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