gcloud 调度程序在已经存在时创建作业

问题描述 投票:0回答:2

我在命令行中创建我的 gcloud 调度器

gcloud scheduler jobs create

但是当我已经部署了我的 gitlabCI 时,我得到了已经存在的错误。

如果已经直接存在于我的 gitlabCI 中,是否可以覆盖?

gcloud scheduler exists
2个回答
0
投票

假设您创建一个具有以下属性值的 Cloud Schedule 作业

gcloud scheduler jobs create JOB --location=LOCATION
工作 地点
我的工作 美国西部1
gcloud scheduler jobs create my-job --location=us-west1

为了验证作业是否已经存在,您可以使用 gcloud CLI 的

gcloud schedule jobs describe JOB
命令。例如 https://cloud.google.com/sdk/gcloud/reference/scheduler/jobs/describe

gcloud scheduler jobs describe my-job --location=us-west1

如果它确实已经存在,没有直接的方法“覆盖”现有的,你可以做的是

  • 要么删除以前的工作并从头开始重新创建它,例如
gcloud scheduler jobs delete my-job
gcloud scheduler jobs create my-job
  • 或者您可以修改现有的作业,例如,当您将新版本的服务部署到 AppEngine 时,您可以简单地将其反映到现有的 Cloud Scheduler 作业中,而无需完全重新创建它。
gcloud scheduler jobs update app-engine my-job --version=VERSION

更多信息请参考Cloud SDK on Cloud Scheduler官方文档https://cloud.google.com/sdk/gcloud/reference/scheduler


0
投票

您可以在您的

.gitlab-ci
文件中尝试以下步骤:

  1. 列出所有调度程序作业并使用过滤器缩小到您的调度程序作业。使用您的调度程序作业独有的东西,例如
    description
    ?
  2. 删除现有作业。
  3. 重新创建您的调度程序作业
    # list scheduler jobs
    - >
      gcloud scheduler jobs list
      --location="LOCATION"
      --filter "description='The description for your existing scheduler job'"
      --project "YOUR_PROJECT_ID"
      --format json
      > list.json
    
    # delete the existing scheduler job
    - >
      for i in $(jq -r .[].name list.json); do
        gcloud scheduler jobs delete $i --quiet --project $YOUR_PROJECT_ID || echo "Failed to delete $i"
      done

    # now re-create your scheduler job
    - >
      gcloud scheduler jobs create your-scheduler-job
© www.soinside.com 2019 - 2024. All rights reserved.