Substituir a função experimental por etapa paralela

A função experimental do Workflows , experimental.executions.map, inicia uma execução de fluxo de trabalho para cada argumento correspondente e aguarda a conclusão de todas as execuções, retornando uma lista em que cada elemento é o resultado de uma execução.

Se você estiver usando experimental.executions.map para oferecer suporte ao trabalho paralelo, poderá migrar o fluxo de trabalho para usar etapas paralelas, executando loops for comuns em paralelo.

Uma etapa parallel define uma parte do fluxo de trabalho em que duas ou mais etapas podem ser executadas simultaneamente. Uma etapa parallel aguarda até que todas as etapas definidas nela sejam concluídas ou interrompidas por uma exceção não tratada. Em seguida, a execução continua. Assim como experimental.executions.map, a ordem de execução não é garantida. Para mais detalhes, consulte a página de referência de sintaxe para etapas paralelas.

O uso de experimental.executions.map ou workflows.executions.run exige uma cota extra de execuções simultâneas. No entanto, ao usar etapas paralelas com chamadas para conectores embutidos (consulte o exemplo de conector de tradução), nenhuma cota de execução extra é necessária.

Os exemplos a seguir têm como objetivo ajudar você a substituir o uso de experimental.executions.map por uma etapa parallel.

Fluxo de trabalho de tradução

Dado um idioma de origem e destino, o fluxo de trabalho a seguir, chamado translate, usa o conector do Cloud Translation para traduzir um texto de entrada e retornar o resultado. A API Cloud Translation precisa estar ativada.

YAML

  main:
    params: [args]
    steps:
    - basic_translate:
        call: googleapis.translate.v2.translations.translate
        args:
          body:
            q: ${args.text}
            target: ${args.target}
            format: "text"
            source: ${args.source}
        result: r
    - return_step:
        return: ${r}

JSON

  {
    "main": {
      "params": [
        "args"
      ],
      "steps": [
        {
          "basic_translate": {
            "call": "googleapis.translate.v2.translations.translate",
            "args": {
              "body": {
                "q"