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, devuelve 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 Google Cloud restringido.

  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 usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.

  4. Para inicializar la CLI de gcloud, 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. Make sure that billing is enabled for your Google Cloud project.

  7. Install the Google Cloud CLI.

  8. Si usas un proveedor de identidad externo (IdP), primero debes acceder a gcloud CLI con tu identidad federada.

  9. Para inicializar la CLI de gcloud, 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. Make sure that billing is enabled for your Google Cloud project.

  12. Habilita la API de Workflows.

    gcloud services enable workflows.googleapis.com
  13. Crea la cuenta de servicio y asígnale un nombre, por ejemplo, sa-name.
    gcloud iam service-accounts create sa-name
  14. Para enviar registros a Cloud Logging, otorga 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 Cómo otorgar permiso a un flujo de trabajo para acceder a recursos deGoogle Cloud .

  15. 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 deGoogle 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 a 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 de tu flujo de trabajo. Usa yaml para la versión en YAML o json para la versión en 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 {}, se usa tu ubicación de Google Cloudpara crear un término de búsqueda.

      Devuelve 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 Google 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 borra el flujo de trabajo.

    ¿Qué sigue?