Guía de inicio rápido: Crea un flujo de trabajo con la CLI de gcloud

Crea un flujo de trabajo con la CLI de gcloud

En esta guía de inicio rápido, se muestra cómo crear, implementar y ejecutar tu primer flujo de trabajo con la CLI de Google Cloud. El flujo de trabajo envía una solicitud a una API de muestra y, luego, usa la respuesta para crear y enviar una solicitud a una API pública. Luego, el flujo de trabajo muestra la respuesta de la API pública.

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

Antes de comenzar

Es posible que algunos de los pasos de este documento no funcionen correctamente si tu organización aplica restricciones en tu entorno de Google Cloud. En ese caso, es posible que no puedas completar tareas como crear direcciones IP públicas o claves de cuenta de servicio. Si haces una solicitud que muestra un error sobre las restricciones, consulta cómo desarrollar aplicaciones en un entorno restringido de Google Cloud.

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  4. Instala y, luego, inicializa Google Cloud CLI.
  5. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  6. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.

  7. Instala y, luego, inicializa Google Cloud CLI.
  8. Habilita la API de flujos de trabajo.

    gcloud services enable workflows.googleapis.com
  9. Crea la cuenta de servicio y asígnale un nombre; por ejemplo, sa-name.
    gcloud iam service-accounts create sa-name
  10. Otorga la función 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"
    

    Reemplaza PROJECT_ID por el ID del proyecto.

Crear, implementar y ejecutar un flujo de trabajo

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

  2. Copie y pegue el siguiente flujo de trabajo en el archivo nuevo y, luego, guárdelo:

    YAML

    main:
        params: [input]
        steps:
        - checkSearchTermInInput:
            switch:
                - condition: ${"searchTerm" in input}
                  assign:
                    - searchTerm: ${input.searchTerm}
                  next: readWikipedia
        - getCurrentTime:
            call: http.get
            args:
                url: https://us-central1-workflowsample.cloudfunctions.net/datetime
            result: currentDateTime
        - setFromCallResult:
            assign:
                - searchTerm: ${currentDateTime.body.dayOfTheWeek}
        - 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"
                }
              ]
            }
          },
          {
            "getCurrentTime": {
              "call": "http.get",
              "args": {
                "url": "https://us-central1-workflowsample.cloudfunctions.net/datetime"
              },
              "result": "currentDateTime"
            }
          },
          {
            "setFromCallResult": {
              "assign": [
                {
                  "searchTerm": "${currentDateTime.body.dayOfTheWeek}"
                }
              ]
            }
          },
          {
            "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]}"
            }
          }
        ]
      }
    }

    Este flujo de trabajo realiza una llamada a una API de muestra. El día de la semana que se muestra se pasa a la API de Wikipedia. Se muestran artículos relevantes en Wikipedia sobre el día actual de la semana.

  3. Implementa el flujo de trabajo y asócialo con la cuenta de servicio especificada:

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

    Reemplaza lo siguiente:

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

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

    Reemplaza DAY_OF_WEEK por el término de búsqueda, por ejemplo, {"searchTerm":"Tuesday"}. Si ingresas {}, se recupera el día actual de la semana (en GMT).

    Esto muestra los resultados del intento de ejecución. El resultado es similar al siguiente:

    argument: 'null'
    endTime: '2020-06-23T16:21:35.266171131Z'
    name: projects/123456789012/locations/us-central1/workflows/myFirstWorkflow/executions/f72bc6d4-5ea0-4dfb-bb14-2dae82303120
    result: '["Tuesday","Tuesday Weld","Tuesday Night Music Club","Tuesday (ILoveMakonnen
      song)","Tuesdays with Morrie","Tuesday Group","Tuesday Knight","Tuesday (Burak Yeter
      song)","Tuesday Morning Quarterback","Tuesday Maybe"]'
    startTime: '2020-06-23T16:21:34.826993288Z'
    state: SUCCEEDED
    workflowVersionId: '1'
    

Implementaste y ejecutaste tu primer flujo de trabajo.

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.

  1. Borra el flujo de trabajo que creaste:

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

Se borra el flujo de trabajo.

Próximos pasos