Какой URL-адрес HTTP должен быть указан в облачном планировщике

Я новичок в Google Cloud Platform. Я пытаюсь запланировать задание с помощью облачного планировщика, в котором должно выполняться задание, которое выберет сценарий с именем pipleline.py в моей консоли потока данных.

Я не могу понять ссылку или понять, какой должен быть URL-адрес при создании задания облачного планировщика. Пожалуйста, помогите мне, как это сделать




Ответы (1)


здесь для планирования Задания потока данных с помощью Cloud Scheduler. Он использует Terraform для создания ресурса Cloud Scheduler, как вы можете видеть здесь:

http_target {
    http_method = "POST"
    uri = "https://dataflow.googleapis.com/v1b3/projects/${var.project_id}/locations/${var.region}/templates:launch?gcsPath=gs://${var.bucket}/templates/dataflow-demo-template"
    ...
}

Если вы не знакомы с Terraform, вы можете просто использовать gcloud SDK, чтобы сделать то же самое:

gcloud beta scheduler jobs create http job_name \
  --schedule='every day' \
  --uri="https://dataflow.googleapis.com/v1b3/projects/$PROJECT_ID/locations/$REGION/templates:launch?gcsPath=gs://$BUCKET_NAME/templates/dataflow-demo-template" \
  --message-body-from-file="dataflow_message_body.json" \
  --oauth-service-account-email=$DATAFLOW_SERVICE_ACCOUNT

dataflow_message_body.json содержит json, похожий на:

{
  "jobName": "dataflow_job_name",
  "parameters": {
    "inputFilePattern": "gs://$BUCKET_NAME/dataflow/input.txt",
    "outputDirectory": "gs://$BUCKET_NAME/dataflow/output.txt.gz",
    "outputFailureFile": "gs://$BUCKET_NAME/dataflow/failure",
    "compression": "GZIP"
  },
  "gcsPath": "gs://dataflow-templates/latest/Bulk_Compress_GCS_Files"
}

И если вы хотите сделать это в консоли, просто перейдите в свой проект и затем создайте новый Cloud Scheduler с такими же полями, как описано выше.

Если вы хотите узнать, как выглядят шаблоны, предоставленные Google, вы можете посмотреть здесь. Если вы хотите узнать, как создавать собственные шаблоны и какой формат они должны иметь, взгляните на здесь. При запуске задания Dataflow вы всегда ссылаетесь на местоположение в сегменте, будь то сегмент gs://dataflow-templates, предоставленный Google, или ваш собственный сегмент.

person Nebulastic    schedule 10.12.2020
comment
Да Спасибо, наткнулся на эту ссылку. И да хотел бы сделать из Cloud Scheduler Console. Но мой вопрос в том, какие параметры должны быть для каждой переменной, определенной выше. Например, каким должен быть URL / URI, на что я должен ссылаться и где находится URL в моем проекте? - person anagha s; 10.12.2020
comment
Создайте сегмент в своем проекте и поместите в него шаблон потока данных. Обратитесь к этому шаблону в приведенном выше параметре запроса gcsPath в файле uri. - person Nebulastic; 10.12.2020
comment
У меня уже есть сценарий в Dataflow (Pipeline.py - основной сценарий; сценарий Bigquery и сценарий свойств JSON). Должен ли я скопировать их все в корзину и использовать эту ссылку? Мне жаль, что я новичок в этом, поэтому мне трудно соединить точки. - person anagha s; 10.12.2020
comment
Обновил вопрос, см. Последний абзац. Он содержит источники предварительно созданных и настраиваемых шаблонов Dataflow, поэтому вы знаете, как они должны выглядеть, когда помещаете их в корзину. Если вы новичок в этом, я бы порекомендовал начать с примера подсчета слов. - person Nebulastic; 10.12.2020