передавать аргументы в облачные рабочие процессы с помощью Python

Я разрабатываю скрипт Python, позволяющий мне запускать службу облачных рабочих процессов.

В сценарии я передаю некоторые аргументы при вызове конечной точки
projects/{project}/locations/{location}/workflows/{workflow}/executions.

Но я не нахожу, как использовать эти аргументы в YAML.


person Pentium10    schedule 20.11.2020    source источник


Ответы (1)


требования.txt

google-cloud-workflows>=0.1.0

main.py

from google.cloud.workflows.executions_v1beta.services.executions import ExecutionsClient
from google.cloud.workflows.executions_v1beta.types import CreateExecutionRequest, Execution
import json

def callWorkflow(request):
    project = "projectid"
    location = "us-central1"
    workflow = "workflowname"
    arguments = {"first": "Hello", "second":"world"}

    parent = "projects/{}/locations/{}/workflows/{}".format(project, location, workflow)
    execution = Execution(argument = json.dumps(arguments))

    client = ExecutionsClient()
    response = None
    # Try running a workflow:
    try:
        response = client.create_execution( parent=parent, execution=execution)
    except:
        return "Error occurred when triggering workflow execution", 500

    return "OK", 200

При развертывании в качестве облачной функции убедитесь, что для служебной учетной записи функции установлена ​​роль Workflows.Invoker в IAM (требуется для запуска выполнения рабочего процесса).

После развертывания и запуска вышеуказанной функции доступ к аргументам можно получить в рабочем процессе следующим образом (пример также доступен Документы):

main:
    params: [args]
    steps:
      - firstStep:
          return: ${args.first + " " + args.second}
person Pentium10    schedule 20.11.2020