GCP-自动部署具有cron作业的AppEngine

时间:2019-07-02 12:57:06

标签: google-cloud-platform cron continuous-integration google-cloud-build

我在挣扎。我找不到此问题的解决方案。

我想设置一个CloudBuild配置文件'cloudbuild-preprod.yaml',该文件将部署应用程序,然后在每次与git上的特定分支合并时部署cron作业。

部署正常。但是当我想添加第二个作业来自动执行cron作业时。 GCP会引发错误。

这是我的cloudbuild文件'cloudbuild-preprod.yaml'

steps:
- name: "gcr.io/cloud-builders/gcloud"
  args: ["app", "deploy", 'app/compa-api-notifications-preprod.yaml']
- name: "gcr.io/cloud-builders/gcloud"
  args: ["app", "deploy", 'app/cron-preprod.yaml']
timeout: '1200s'

这是我的cron配置文件' cron-preprod.yaml ':

cron:
- description: "monthly summary estimations"
  url: /v1/sendMailEstimationsReminders
  schedule: 1 of month 09:00
  retry_parameters:
    job_retry_limit: 1

最后这是我的配置文件' compa-api-notifications-preprod.yaml '(在没有cron作业的情况下效果很好)。

env: flex
runtime: nodejs
service: compa-notifications
manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

被触发时,第一个作业正常,但第二个作业抛出错误:

ERROR: build step 1 "gcr.io/cloud-builders/gcloud" failed: exit status 1
ERROR
Finished Step #1
Step #1:   in "/workspace/app/cron-preprod.yaml", line 2, column 1
Step #1: Unexpected attribute 'cron' for object of type AppInfoExternal.
Step #1: ERROR: (gcloud.app.deploy) An error occurred while parsing file: [/workspace/app/cron-preprod.yaml]
Step #1: Already have image (with digest): gcr.io/cloud-builders/gcloud
Starting Step #1

任何帮助将不胜感激!预先谢谢你

1 个答案:

答案 0 :(得分:1)

我终于通过将cron配置文件从 cron-preprod.yaml 重命名为 cron.yaml 使其工作了。如果GCP没有命名为cron.yaml,它将无法理解它是cron配置文件。