2

我看到 GCP 没有提供计划类型。我想知道创建模板(复合类型或类似类型)以提供 Cloud Scheduler 类型的步骤。我知道谷歌已经提供了一个例子

如果可以通过代码这样做它可以使用python 客户端库,尽管它在文档中说这个库不可用,我可以在代码中内联它。

我想不出一种针对谷歌 API 进行身份验证来执行此类请求的方法。

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

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

为了完整起见,这里也是相关的Github问题

4

3 回答 3

4

根据GCP 的文档,尚不支持 Cloud Scheduler 类型。

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

于 2019-01-17T16:34:03.070 回答
2

您可以使用通用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

有关阅读文档的更多信息: propertieshttps ://cloud.google.com/scheduler/docs/reference/rpc/google.cloud.scheduler.v1#google.cloud.scheduler.v1.HttpTargetCloud Scheduler

于 2020-10-30T10:20:37.307 回答
2

我一直在寻找这个功能,并认为我应该就这个话题给出一个最新的答案。

感谢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!"
于 2020-09-16T08:43:16.447 回答