добавить тело в запрос облачного планировщика с помощью Python API - PullRequest
1 голос
/ 26 мая 2020

Я расширяю этот вопрос: Как создать задание с помощью планировщика Google Cloud Python api

Мне интересно, как я могу вставить объект тела в передается вместе с функцией, я могу сделать это через gcloud, и в соответствии с документами v1 я знаю, что тело нужно передать в HttpTarget каждый раз, когда я пытаюсь передать его таким образом, он ошибается и говорит:

TypeError: No positional arguments allowed

Честно говоря, я вообще не смог заставить from google.cloud.scheduler_v1.types import HttpTarget as Target работать.

Может кто-нибудь привести мне пример, где они успешно использовали API для создания задания в Cloud Scheduler с отправленным вместе с ним телом (JSON объект) (метод POST, конечно)?

1 Ответ

1 голос
/ 26 мая 2020
import json

from google.cloud import scheduler_v1

client = scheduler_v1.CloudSchedulerClient()

project = "..."  # TODO
location = "..."  # TODO
parent = client.location_path(project, location)

uri = "..."  # TODO
body = {"Hello": "World"}

job = {
    "http_target": {
        "http_method": "POST",
        "uri": uri,
        "headers": {"Content-Type": "application/json"},
        "body": json.dumps(body).encode("utf-8"),
    },
    "schedule": "* * * * *",
}

response = client.create_job(parent, job)

print(response)
...