Crea un flujo de trabajo con gcloud CLI

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

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

Antes de comenzar

Es posible que las restricciones de seguridad que define tu organización no te permitan completar los siguientes pasos. Para obtener información sobre la solución de problemas, consulta Desarrolla aplicaciones en un entorno de Google Cloud restringido.

  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. Instala Google Cloud CLI.
  3. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  4. Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  5. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  6. Instala Google Cloud CLI.
  7. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  8. Crea o selecciona un proyecto de Google Cloud.

    • Crea un proyecto de Google Cloud:

      gcloud projects create PROJECT_ID

      Reemplaza PROJECT_ID por un nombre para el proyecto de Google Cloud que estás creando.

    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project PROJECT_ID

      Reemplaza PROJECT_ID por el nombre del proyecto de Google Cloud.

  9. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  10. Habilita la API de Workflows.

    gcloud services enable workflows.googleapis.com
  11. Crea la cuenta de servicio y asígnale un nombre; por ejemplo, sa-name.
    gcloud iam service-accounts create sa-name
  12. Para enviar registros a Cloud Logging, 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"
    

    Si deseas obtener más información sobre las funciones y los permisos de la cuenta de servicio, consulta Otorga permiso a un flujo de trabajo para acceder a los recursos de Google Cloud.

Crea, implementa y ejecuta un flujo de trabajo

  1. En tu directorio principal, crea un archivo nuevo que se llame myFirstWorkflow.yaml o myFirstWorkflow.json.

  2. Copia y pega el siguiente flujo de trabajo en el archivo nuevo y, luego, 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 ingreses tu propio término de búsqueda, este flujo de trabajo usa tu ubicación de Google Cloud para construir un término de búsqueda, que pasa a la API de Wikipedia. Se muestra una lista de artículos de Wikipedia relacionados.

  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: Es 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='SEARCH_TERM'
    

    Reemplaza SEARCH_TERM por tu término de búsqueda, por ejemplo, {"searchTerm":"North"}. Si ingresas {}, tu ubicación de Google Cloud se usará para crear un término de búsqueda.

    Esto muestra los resultados del intento de ejecución. El resultado es similar a lo 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
    

Implementaste y ejecutaste tu primer flujo de trabajo.

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en esta página, borra el proyecto de Cloud que tiene los recursos.

  1. Borra el flujo de trabajo que creaste:

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

Se borró el flujo de trabajo.

¿Qué sigue?