Crear un flujo de trabajo con la CLI de gcloud

En esta guía de inicio rápido se muestra cómo crear, desplegar y ejecutar tu primer flujo de trabajo con la CLI de Google Cloud. El flujo de trabajo de ejemplo envía una solicitud a una API pública y, a continuación, devuelve la respuesta de la API.

Para ver una lista de todos los comandos de la CLI de gcloud de Workflows, consulta la página de referencia de la CLI de gcloud de Workflows.

Antes de empezar

Es posible que las restricciones de seguridad definidas por tu organización te impidan completar los siguientes pasos. Para obtener información sobre cómo solucionar problemas, consulta el artículo Desarrollar aplicaciones en un entorno limitado Google Cloud .

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  4. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  5. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Install the Google Cloud CLI.

  8. Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

  9. Para inicializar gcloud CLI, ejecuta el siguiente comando:

    gcloud init
  10. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  11. Verify that billing is enabled for your Google Cloud project.

  12. Habilita la API Workflows.

    gcloud services enable workflows.googleapis.com
  13. Crea la cuenta de servicio y dale un nombre (por ejemplo, sa-name).
    gcloud iam service-accounts create sa-name
  14. Para enviar registros a Cloud Logging, asigna el rol roles/logging.logWriter a la cuenta de servicio.
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "serviceAccount:sa-name@PROJECT_ID.iam.gserviceaccount.com" \
        --role "roles/logging.logWriter"

    Para obtener más información sobre los roles y permisos de las cuentas de servicio, consulta Conceder permiso a un flujo de trabajo para acceder a recursosGoogle Cloud .

  15. Crear, desplegar y ejecutar un flujo de trabajo

    1. En tu directorio principal, crea un archivo llamado myFirstWorkflow.yaml o myFirstWorkflow.json.

    2. Copia y pega el siguiente flujo de trabajo en el nuevo archivo y, a continuación, guárdalo:

      YAML

      main:
        params: [input]
        steps:
          - checkSearchTermInInput:
              switch:
                - condition: '${"searchTerm" in input}'
                  assign:
                    - searchTerm: '${input.searchTerm}'
                  next: readWikipedia
          - getLocation:
              call: sys.get_env
              args:
                name: GOOGLE_CLOUD_LOCATION
              result: location
          - setFromCallResult:
              assign:
                - searchTerm: '${text.split(location, "-")[0]}'
          - readWikipedia:
              call: http.get
              args:
                url: 'https://en.wikipedia.org/w/api.php'
                query:
                  action: opensearch
                  search: '${searchTerm}'
              result: wikiResult
          - returnOutput:
              return: '${wikiResult.body[1]}'

      JSON

      {
        "main": {
          "params": [
            "input"
          ],
          "steps": [
            {
              "checkSearchTermInInput": {
                "switch": [
                  {
                    "condition": "${\"searchTerm\" in input}",
                    "assign": [
                      {
                        "searchTerm": "${input.searchTerm}"
                      }
                    ],
                    "next": "readWikipedia"
                  }
                ]
              }
            },
            {
              "getLocation": {
                "call": "sys.get_env",
                "args": {
                  "name": "GOOGLE_CLOUD_LOCATION"
                },
                "result": "location"
              }
            },
            {
              "setFromCallResult": {
                "assign": [
                  {
                    "searchTerm": "${text.split(location, \"-\")[0]}"
                  }
                ]
              }
            },
            {
              "readWikipedia": {
                "call": "http.get",
                "args": {
                  "url": "https://en.wikipedia.org/w/api.php",
                  "query": {
                    "action": "opensearch",
                    "search": "${searchTerm}"
                  }
                },
                "result": "wikiResult"
              }
            },
            {
              "returnOutput": {
                "return": "${wikiResult.body[1]}"
              }
            }
          ]
        }
      }
      

      A menos que introduzcas tu propio término de búsqueda, este flujo de trabajo usa tuGoogle Cloud ubicación para crear un término de búsqueda, que pasa a la API de Wikipedia. Se devuelve una lista de artículos de Wikipedia relacionados.

    3. Despliega el flujo de trabajo y asócialo a la cuenta de servicio especificada:

      gcloud workflows deploy myFirstWorkflow --source=myFirstWorkflow.EXTENSION \
          --service-account=sa-name@PROJECT_ID.iam.gserviceaccount.com
      

      Haz los cambios siguientes:

      • EXTENSION: la extensión de archivo de tu flujo de trabajo. Usa yaml para la versión YAML o json para la versión JSON.
      • PROJECT_ID: tu ID de proyecto
    4. Ejecuta el flujo de trabajo:

      gcloud workflows run myFirstWorkflow \
          --data='SEARCH_TERM'
      

      Sustituye SEARCH_TERM por el término de búsqueda. Por ejemplo: {"searchTerm":"North"}. Si introduces {}, tu Google Cloud ubicación se utiliza para crear un término de búsqueda.

      Devuelve los resultados del intento de ejecución. La salida es similar a la siguiente:

      argument: '{"searchTerm":"North"}'
      duration: 0.210616856s
      endTime: '2023-05-10T21:56:39.465899376Z'
      name: projects/734581694262/locations/us-central1/workflows/workflow-1/executions/eae31f11-a5c3-47e2-8014-05b400820a79
      result: '["North","North America","Northern Ireland","North Korea","North Macedonia","North
        Carolina","Northrop Grumman B-2 Spirit","Northrop F-5","Northern Cyprus","North
        Dakota"]'
      startTime: '2023-05-10T21:56:39.255282520Z'
      state: SUCCEEDED
      status:
        currentSteps:
        - routine: main
          step: returnOutput
      workflowRevisionId: 000001-ac2
      

    Has desplegado y ejecutado tu primer flujo de trabajo.

    Limpieza

    Para evitar que se apliquen cargos en tu Google Cloud cuenta por los recursos utilizados en esta página, elimina el Google Cloud proyecto con los recursos.

    1. Elimina el flujo de trabajo que has creado:

      gcloud workflows delete myFirstWorkflow
      
    2. Cuando se te pregunte si quieres continuar, escribe y.

    El flujo de trabajo se elimina.

    Siguientes pasos