我们可以在Terraform中安排bash文件执行的时间表吗

问题描述

我们可以计划local_exec来执行在terraform中具有多个命令的bash文件吗?我尝试了[google_cloud_scheduler_job][1]

resource "google_cloud_scheduler_job" "job" {
  name = "test-job"
  description = "test job"
  schedule = "*/2 * * * *"
  provisioner "local-exec" {
    command = "${path.module}/bash_file.sh"
  }
}

但是我遇到了错误

Error: ExactlyOne

  on main.tf line 366,in resource "google_cloud_scheduler_job" "job":
 366: resource "google_cloud_scheduler_job" "job" {

"app_engine_http_target": one of
`app_engine_http_target,http_target,pubsub_target` must be specified


Error: ExactlyOne

  on main.tf line 366,in resource "google_cloud_scheduler_job" "job":
 366: resource "google_cloud_scheduler_job" "job" {

"pubsub_target": one of `app_engine_http_target,pubsub_target`
must be specified


Error: ExactlyOne

  on main.tf line 366,in resource "google_cloud_scheduler_job" "job":
 366: resource "google_cloud_scheduler_job" "job" {

"http_target": one of `app_engine_http_target,pubsub_target` must
be specified

任何建议将不胜感激。 谢谢。

解决方法

您根本无法计划synonym_a,当然不能使用Google云计划程序。这根本不是table_a的工作方式,也不是它打算做什么。 Google Scheduler如何能够进入您的计算机以在本地执行bash脚本?

您可能想将bash脚本所做的任何事情构建到Google Cloud Function中,并通过Terraform来提供该功能。