Workflows te permite organizar y automatizar procesos de varios pasos en servicios de Google Cloud y APIs externas. Puedes implementar, actualizar y administrar definiciones de flujos de trabajo con la consola de Google Cloud , Google Cloud CLI en tu terminal local o Cloud Shell, o la API 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.
Console
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Workflows API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
gcloud
-
Instala Google Cloud CLI.
-
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
Crea o selecciona un proyecto de Google Cloud .
Roles necesarios para seleccionar o crear un proyecto
- Seleccionar un proyecto: Para seleccionar un proyecto, no se requiere un rol de IAM específico. Puedes seleccionar cualquier proyecto en el que se te haya otorgado un rol.
-
Crea un proyecto: Para crear un proyecto, necesitas el rol de Creador de proyectos
(
roles/resourcemanager.projectCreator), que contiene el permisoresourcemanager.projects.create. Obtén más información para otorgar roles.
-
Crea un proyecto de Google Cloud :
gcloud projects create PROJECT_ID
Reemplaza
PROJECT_IDpor 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_IDpor el nombre de tu proyecto de Google Cloud .
-
Verifica que la facturación esté habilitada para tu proyecto de Google Cloud .
Habilita la API de Workflows si aún no está habilitada:
Roles necesarios para habilitar las APIs
Para habilitar las APIs, necesitas el permiso
serviceusage.services.enable. Si creaste el proyecto, es probable que ya tengas este permiso a través del rol de propietario (roles/owner). De lo contrario, puedes obtenerlo a través del rol de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin). Obtén más información para otorgar roles.gcloud services enable workflows.googleapis.com
REST
Para administrar flujos de trabajo con la API de Workflows, te recomendamos
que uses las bibliotecas cliente que proporciona Google para llamar al
servicio de workflows.googleapis.com. Para obtener más información, consulta la
API de Workflows.
Crea una cuenta de servicio
Una cuenta de servicio representa la identidad de un flujo de trabajo y determina qué permisos tiene el flujo de trabajo y a qué recursos de Google Cloud puede acceder. Crea una cuenta de servicio si aún no tienes una y, luego, otórgale los roles necesarios para acceder a los recursos de Google Cloud objetivo y para crear registros.
Si no especificas una cuenta de servicio durante la creación del flujo de trabajo, este usa la cuenta de servicio predeterminada de Compute Engine para su identidad. Para obtener más información, consulta Otorga permiso a un flujo de trabajo para acceder a los recursos deGoogle Cloud .
Para crear un flujo de trabajo y conectar una cuenta de servicio, necesitas permisos para crear el flujo de trabajo (por ejemplo, el rol de editor de Workflows) y para actuar como esa cuenta de servicio (por ejemplo, el rol de usuario de la cuenta de servicio). También necesitas permiso para actuar como la cuenta de servicio asociada cuando actualizas el código fuente o la cuenta de servicio de un flujo de trabajo. Para obtener más información, consulta Permisos de cuentas de servicio.
Console
En la consola de Google Cloud , ve a la página Cuentas de servicio.
Selecciona un proyecto y, luego, haz clic en Crear cuenta de servicio.
Escribe un nombre en el campo Nombre de cuenta de servicio.
Debe tener entre 6 y 30 caracteres y puede contener guiones y caracteres alfanuméricos en minúscula. Después de crear una cuenta de servicio, no podrás cambiar su nombre.
Haz clic en Crear y continuar.
Haz clic en Selecciona un rol.
Selecciona los siguientes roles y haz clic en Agregar otro rol según sea necesario:
- Selecciona los roles a los que tu flujo de trabajo necesita acceder para los recursos Google Cloud objetivo; por ejemplo, si tu flujo de trabajo invoca otro flujo de trabajo, selecciona Workflows > Invocador de Workflows.
- Para enviar registros a Cloud Logging, selecciona Logging > Escritor de registros.
Haz clic en Listo para terminar de crear la cuenta de servicio.
gcloud
Crea la cuenta de servicio:
gcloud iam service-accounts create SERVICE_ACCOUNT
Otorga permisos a la cuenta de servicio asignando los roles que tu flujo de trabajo necesita para acceder a los recursos de Google Cloud objetivo:
Por ejemplo, si tu flujo de trabajo invoca otro flujo de trabajo, asigna el rol
roles/workflows.invoker:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID." \ --role "roles/workflows.invoker"
Para enviar registros a Cloud Logging, asigna el rol
roles/logging.logWriter:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:SERVICE_ACCOUNT@PROJECT_ID." \ --role "roles/logging.logWriter"
Reemplaza lo siguiente:
SERVICE_ACCOUNT: el nombre de la cuenta de servicio Debe tener entre 6 y 30 caracteres y puede contener guiones y caracteres alfanuméricos en minúscula. Después de crear una cuenta de servicio, no podrás cambiar su nombre.PROJECT_ID: Es el ID del proyecto de Google Cloud .
REST
Puedes usar el método
serviceAccounts.create
para crear una cuenta de servicio. Para obtener más información, consulta
Crea cuentas de servicio.
Puedes otorgar varios roles de manera programática modificando y configurando la
política de permisos de un recurso con el
método
setIamPolicy. Para obtener más información, consulta
Otorga o revoca varios roles de manera programática.
Crea un flujo de trabajo
La definición de un flujo de trabajo está compuesta por una serie de pasos descritos con la sintaxis de Workflows, que se pueden escribir en formato YAML o JSON. Después de definir un flujo de trabajo, debes implementarlo para que esté disponible para su ejecución. El paso de implementación también valida que se pueda ejecutar el archivo de origen. Falla si el archivo de origen no contiene una definición de flujo de trabajo válida.
La edición de archivos YAML puede ser propensa a errores. Puedes crear tu flujo de trabajo con un IDE o editor de código fuente preferido y configurar el autocompletado y la validación de sintaxis para reducir los errores.
Console
En la consola de Google Cloud , ve a la página Flujos de trabajo.
Haz clic en Crear.
Ingresa un nombre para el flujo de trabajo, como
myFirstWorkflow. El nombre puede contener letras, números, guiones bajos y guiones. Debe comenzar con una letra y terminar con una letra o un númeroDe manera opcional, agrega una descripción del flujo de trabajo.
En la lista Región, selecciona una ubicación adecuada para implementar tu flujo de trabajo, por ejemplo, us-central1.
En la lista Cuenta de servicio, selecciona una cuenta de servicio que tu flujo de trabajo usará para acceder a otros servicios de Google Cloud . Para obtener más información, consulta Crea una cuenta de servicio en este documento.
De forma opcional, puedes hacer lo siguiente:
Especifica el nivel de registro de llamadas que deseas aplicar a la definición del flujo de trabajo. En la lista Nivel de registro de llamadas, selecciona una de las siguientes opciones:
- No especificado: No se especifica ningún nivel de registro. Esta es la opción predeterminada. Un nivel de registro de ejecución tiene prioridad sobre cualquier nivel de registro de flujo de trabajo, a menos que no se especifique el nivel de registro de ejecución (predeterminado). En ese caso, se aplica el nivel de registro del flujo de trabajo.
- Solo errores: Registra todas las excepciones detectadas, o cuando se detiene una llamada debido a una excepción.
- Todas las llamadas: Registra todas las llamadas a subflujos de trabajo o funciones de biblioteca y sus resultados.
- Sin registros: Sin registro de llamadas.
Especifica el nivel de historial de ejecución que deseas aplicar a la definición del flujo de trabajo. En la lista Historial de ejecución, selecciona una de las siguientes opciones:
- Básico: Habilita el historial de ejecución básico. Esta es la opción predeterminada.
- Detallado: Habilita el historial de ejecución detallado, incluidos los valores de las variables dentro del alcance y la cantidad esperada de iteraciones.
Especifica una clave de Cloud Key Management Service que el flujo de trabajo debería usar para la encriptación de datos: selecciona Clave de encriptación administrada por el cliente (CMEK). Para obtener más información, consulta Usa claves de encriptación administradas por el cliente.
Especifica una variable de entorno a la que pueda acceder el flujo de trabajo en el entorno de ejecución. Para obtener más información, consulta Usa variables de entorno.
Agrega una etiqueta: Las etiquetas son pares clave-valor que te ayudan a organizar tus instancias deGoogle Cloud . Para obtener más información, consulta ¿Qué son las etiquetas? Las ejecuciones del flujo de trabajo heredan las etiquetas del flujo de trabajo. Para ver las etiquetas de ejecución, usa el método
workflows.executions.listpara enumerar y filtrar las ejecuciones de flujos de trabajo.Programa tu flujo de trabajo: Selecciona Agregar activador nuevo > Cloud Scheduler. Para obtener más información, consulta Programa un flujo de trabajo con Cloud Scheduler.
Activa el flujo de trabajo a través de un evento o mensaje de Pub/Sub: Selecciona Agregar activador nuevo > Eventarc. Para obtener más información, consulta Activa un flujo de trabajo con eventos o mensajes de Pub/Sub.
Haga clic en Siguiente.
En el editor de flujos de trabajo, ingresa la definición para el flujo de trabajo. Consulta un flujo de trabajo de ejemplo.
Haga clic en Implementar.
gcloud
Asegúrate de que el código fuente de tu flujo de trabajo se guarde en un archivo YAML o JSON, como
MY_WORKFLOW.YAMLoMY_WORKFLOW.JSON. Consulta un flujo de trabajo de ejemplo.Abre una terminal.
Puedes crear e implementar un flujo de trabajo con el comando
gcloud workflows deploy:gcloud workflows deploy WORKFLOW_NAME \ --location=LOCATION \ --call-log-level=CALL_LOGGING_LEVEL \ --description="DESCRIPTION" \ --execution-history-level="EXECUTION_HISTORY_LEVEL" \ --labels="LABEL_KEY=LABEL_VALUE" \ --set-env-vars="ENV_KEY=ENV_VALUE" \ --kms-key=ENCRYPT_KEY \ --service-account=SERVICE_ACCOUNT@PROJECT_ID. \ --source=YAML_OR_JSON_SOURCE_FILE
Reemplaza lo siguiente:
WORKFLOW_NAME: Es el nombre de tu flujo de trabajo, por ejemplo,myFirstWorkflow. El nombre puede contener letras, números, guiones bajos y guiones. Debe empezar con una letra y terminar con una letra o un número.LOCATION: Es la región en la que se implementará tu flujo de trabajo, por ejemplo,us-central1.CALL_LOGGING_LEVEL: es opcional. Nivel del registro de llamadas que se aplicará durante la ejecución. Puede ser una de las siguientes opciones:none: No se especifica ningún nivel de registro. Esta es la opción predeterminada. Un nivel de registro de ejecución tiene prioridad sobre cualquier nivel de registro de flujo de trabajo, a menos que no se especifique el nivel de registro de ejecución (predeterminado). En ese caso, se aplica el nivel de registro del flujo de trabajo.log-errors-only: Registra todas las excepciones detectadas; o cuando se detiene una llamada debido a una excepción.log-all-calls: Registra todas las llamadas a subflujos de trabajo o funciones de biblioteca y sus resultados.log-none: Sin registro de llamadas.
DESCRIPTION: es opcional. Es una descripción del flujo de trabajo.EXECUTION_HISTORY_LEVEL: es opcional. Nivel del historial de ejecuciones que se aplicará durante la ejecución. Puede ser una de las siguientes opciones:none: No se especifica ningún nivel de historial de ejecuciones. Esta es la opción predeterminada. Si no se especifica un nivel de historial de ejecución para una ejecución, se determina según el nivel que se aplica al flujo de trabajo. Si los niveles son diferentes, el parámetro de configuración que se aplica a nivel de la ejecución anula el que se aplica a nivel del flujo de trabajo para esta ejecución.execution-history-basic: habilita el historial de ejecuciones básico.execution-history-detailed: Habilita el historial de ejecución detallado, incluidos los valores de las variables dentro del alcance y la cantidad esperada de iteraciones.
LABEL_KEY=LABEL_VALUE: es opcional. Es una lista de pares clave-valor de etiquetas que te ayuda a organizar tus instancias deGoogle Cloud , por ejemplo,name=wrench. Para obtener más información, consulta ¿Qué son las etiquetas? Las ejecuciones del flujo de trabajo heredan las etiquetas del flujo de trabajo. Para ver las etiquetas de ejecución, usa el métodoworkflows.executions.listpara enumerar y filtrar las ejecuciones de flujos de trabajo.ENV_KEY=ENV_VALUE: es opcional. Lista de pares clave-valor de variable de entorno; por ejemplo,MONTH=January. Para obtener más información, consulta Usa variables de entorno.ENCRYPT_KEY: es opcional. Una clave de Cloud KMS que el flujo de trabajo debe usar para la encriptación de datos en el formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para obtener más información, consulta Usa claves de encriptación administradas por el cliente.SERVICE_ACCOUNT@PROJECT_ID.: Opcional. La cuenta de servicio que usará el flujo de trabajo para acceder a otros servicios deGoogle Cloud . Para obtener más información, consulta Crea una cuenta de servicio en este documento.YAML_OR_JSON_SOURCE_FILE: Es el archivo de origen para la definición del flujo de trabajo. Por ejemplo:myFirstWorkflow.yaml.
REST
Para crear un flujo de trabajo nuevo con un nombre especificado, usa el
método projects.locations.workflows.create
y el parámetro de consulta workflowId para especificar un ID para el
flujo de trabajo.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
WORKFLOW_NAME: Es el nombre de tu flujo de trabajo, por ejemplo,myFirstWorkflow. El nombre puede contener letras, números, guiones bajos y guiones. Debe comenzar con una letra y terminar con una letra o un número.DESCRIPTION: es opcional. Una descripción de tu flujo de trabajo. No debe tener más de 1,000 caracteres Unicode.LABEL_KEYyLABEL_VALUE: opcional. Es un mapa de pares clave-valor de etiquetas que te ayudan a organizar tus instancias de Google Cloud . Por ejemplo:{"name": "wrench", "mass": "1kg", "count": "3"}Para obtener más información, consulta ¿Qué son las etiquetas? Las etiquetas del flujo de trabajo se heredan de las ejecuciones del flujo de trabajo. Para ver las etiquetas de ejecución, usa el métodoworkflows.executions.listpara enumerar y filtrar las ejecuciones de flujos de trabajo.SERVICE_ACCOUNT@PROJECT_ID.: Es opcional. La cuenta de servicio que usará el flujo de trabajo para acceder a otros servicios de Google Cloud . El ID del proyecto es tu ID del proyecto de Google Cloud . Para obtener más información, consulta Crea una cuenta de servicio en este documento.ENCRYPT_KEY: es opcional. Una clave de Cloud KMS que el flujo de trabajo debe usar para la encriptación de datos en el formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para obtener más información, consulta Usa claves de encriptación administradas por el cliente.CALL_LOGGING_LEVEL: es opcional. Es el nivel del registro de llamadas que se aplicará durante la ejecución. De forma predeterminada, no se especifica ningún nivel de registro y, en su lugar, se aplica el nivel de registro del flujo de trabajo. Para obtener más información, consulta Envía registros a Logging. Uno de los siguientes:CALL_LOG_LEVEL_UNSPECIFIED: No se especifica ningún nivel de registro y, en su lugar, se aplica el nivel de registro del flujo de trabajo. Esta es la opción predeterminada. De lo contrario, se aplica el nivel de registro de ejecución y tiene prioridad sobre el nivel de registro del flujo de trabajo.LOG_ERRORS_ONLY: Registra todas las excepciones detectadas; o cuando se detiene una llamada debido a una excepción.LOG_ALL_CALLS: Registra todas las llamadas a subflujos de trabajo o funciones de biblioteca y sus resultados.LOG_NONE: Sin registro de llamadas.
EXECUTION_HISTORY_LEVEL: Opcional. Es el nivel del historial de ejecuciones que se aplicará durante la ejecución. Para obtener más información, consulta Visualiza el historial de los pasos de ejecución. Uno de los siguientes:EXECUTION_HISTORY_LEVEL_UNSPECIFIED: No se especifica ningún nivel de historial de ejecución. Esta es la opción predeterminada. Si no se especifica un nivel de historial de ejecución para una ejecución, se determina según el nivel que se aplica al flujo de trabajo. Si los niveles son diferentes, el parámetro de configuración que se aplica a nivel de la ejecución anula el que se aplica a nivel del flujo de trabajo para esta ejecución.EXECUTION_HISTORY_BASIC: habilita el historial de ejecuciones básico.EXECUTION_HISTORY_ADVANCED: Habilita el historial de ejecución detallado, incluidos los valores de las variables dentro del alcance y la cantidad esperada de iteraciones.
ENV_KEYyENV_VALUE: opcional. Un mapa de pares clave-valor de variable de entorno, por ejemplo,{ "month": "January", "day": "Monday"}. Para obtener más información, consulta Usa variables de entorno.SOURCE_CODE: Es la definición del flujo de trabajo. Debes escapar las líneas nuevas en YAML. Por ejemplo:main:\n params:\n - input\n steps:\n - returnOutput:\n return: Hello.Debes usar caracteres de escape para las comillas en JSON. Por ejemplo:
{\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}.LOCATION: Es la región en la que se implementará el flujo de trabajo, por ejemplo,us-central1.
Cuerpo JSON de la solicitud:
{
"name": "WORKFLOW_NAME",
"description": "DESCRIPTION",
"labels": {"LABEL_KEY":"LABEL_VALUE"},
"serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.",
"cryptoKeyName": "ENCRYPT_KEY",
"callLogLevel": "CALL_LOGGING_LEVEL",
"executionHistoryLevel": "EXECUTION_HISTORY_LEVEL"
"userEnvVars": {"ENV_KEY":"ENV_VALUE"},
"sourceContents": "SOURCE_CODE"
}
Para enviar tu solicitud, expande una de estas opciones:
Si el proceso se realiza de forma correcta, el cuerpo de la respuesta contiene una instancia recién creada de
Operation:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
"createTime": "2023-12-05T14:06:06.338390918Z",
"target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
"verb": "create",
"apiVersion": "v1"
},
"done": false
}
Si el valor de "done" es false, la operación
aún está en curso.
Enumera los flujos de trabajo
Puedes enumerar los flujos de trabajo o usar filtros para recuperar un flujo de trabajo específico.
Console
En la consola de Google Cloud , ve a la página Flujos de trabajo.
En esta página, se enumeran tus flujos de trabajo en todas las ubicaciones y se incluyen detalles, como nombres, regiones, revisiones más recientes y mucho más.
Para filtrar tus flujos de trabajo, haz lo siguiente:
- Haz clic en Filtrar o en el campo Filtrar flujos de trabajo.
- En la lista Propiedades, elige una opción para filtrar los flujos de trabajo.
Puedes elegir una sola propiedad o usar el operador lógico
ORpara agregar más propiedades.Para ordenar los flujos de trabajo, junto con el encabezado de la columna compatible, haz clic en Ordenar.
gcloud
Enumera los flujos de trabajo con el comando
gcloud workflows list:
gcloud workflows list --location=LOCATION
Reemplaza LOCATION por el ID o el identificador completamente calificado
de la ubicación de tu flujo de trabajo.
Este comando enumera tus flujos de trabajo en la ubicación especificada y, además, incluye
detalles como NAME, STATE, REVISION_ID y
UPDATE_TIME de un flujo de trabajo.
REST
Para enumerar los flujos de trabajo en una ubicación y un proyecto determinados, usa el
método projects.locations.workflows.list.
Como alternativa, para recuperar los detalles de un solo flujo de trabajo, usa el método
projects.locations.workflows.get.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID: Es el ID del proyecto de Google Cloud.LOCATION: Es la región en la que se implementan los flujos de trabajo, por ejemplo,us-central1.
Para enviar tu solicitud, expande una de estas opciones:
Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene instancias de
Workflow
y la respuesta debe ser similar a la siguiente:
{
"workflows": [
{
"name": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
"state": "ACTIVE",
"revisionId": "000001-0ce",
"createTime": "2023-12-08T13:56:59.306770745Z",
"updateTime": "2023-12-08T13:56:59.547021939Z",
"revisionCreateTime": "2023-12-08T13:56:59.340161044Z",
"serviceAccount": "projects/PROJECT_ID/serviceAccounts/PROJECT_NUMBER-compute@",
"sourceContents": "main:\n params: [input]\n [...] return: '${wikiResult.body[1]}'\n"
},
{
object (Workflow)
}
],
"nextPageToken": string,
"unreachable": [
string
]
}
Actualiza un flujo de trabajo
Puedes actualizar el código fuente, los parámetros de configuración o ambos de un flujo de trabajo existente. Sin embargo, no puedes cambiar el nombre ni la ubicación de un flujo de trabajo.
La actualización de un flujo de trabajo no afecta las ejecuciones en curso. Solo las ejecuciones posteriores del flujo de trabajo usan la configuración actualizada.
Para actualizar el código fuente o la cuenta de servicio de un flujo de trabajo, necesitas el
permiso iam.serviceAccounts.actAs, que se incluye en roles como
Usuario de cuenta de servicio
(roles/iam.serviceAccountUser). Según la actualización, necesitas este
permiso en la siguiente cuenta de servicio:
- Actualiza solo el código fuente del flujo de trabajo (sin actualizar la cuenta de servicio): necesitas el permiso
iam.serviceAccounts.actAsen la cuenta de servicio existente asociada con el flujo de trabajo. - Actualiza la cuenta de servicio o el código fuente y la cuenta de servicio: Necesitas el permiso
iam.serviceAccounts.actAsen la cuenta de servicio nueva que asocias con el flujo de trabajo.
Para obtener más información, consulta Permisos de cuentas de servicio.
Cada vez que actualizas el código fuente, la cuenta de servicio, la clave de encriptación,
las variables de entorno, el nivel de registro de llamadas o el nivel del historial de ejecuciones de un flujo de trabajo, se crea una nueva
revisión del flujo de trabajo y se actualiza su revisionId. Actualizar solo la
descripción o las etiquetas de un flujo de trabajo no crea una revisión nueva. El revisionId
consta de dos partes, separadas por un guion:
Un número de seis dígitos, rellenado con ceros, que comienza en
000001y se incrementa cada vez que se crea una revisión nueva.Una cadena hexadecimal aleatoria de tres caracteres.
Por ejemplo, 000001-27f indica la revisión inicial de un flujo de trabajo y
000002-d52 indica la segunda revisión.
Console
En la consola de Google Cloud , ve a la página Flujos de trabajo.
Haz clic en el nombre del flujo de trabajo que deseas actualizar. Ten en cuenta que no puedes cambiar el nombre del flujo de trabajo.
Aparecerá la página Detalles del flujo de trabajo.
Puedes editar el flujo de trabajo de las siguientes maneras:
Para editar la fuente, sigue estos pasos:
- Haz clic en la pestaña Fuente.
- Haz clic en Editar.
- Para guardar los cambios, haz clic en Guardar. Se implementa el flujo de trabajo actualizado.
Para actualizar la descripción, la cuenta de servicio que usa el flujo de trabajo para la autenticación, el nivel de registro de llamadas, el nivel del historial de ejecución, las variables de entorno, las etiquetas o la clave de encriptación, haz lo siguiente:
- Haz clic en la pestaña Detalles.
- Haz clic en el ícono de correspondiente.
- Si actualizas el nivel de registro de llamadas, selecciona una de las siguientes opciones:
- No especificado: No se especifica ningún nivel de registro. Esta es la opción predeterminada. Un nivel de registro de ejecución tiene prioridad sobre cualquier nivel de registro de flujo de trabajo, a menos que no se especifique el nivel de registro de ejecución (predeterminado). En ese caso, se aplica el nivel de registro del flujo de trabajo.
- Solo errores: Registra todas las excepciones detectadas, o cuando se detiene una llamada debido a una excepción.
- Todas las llamadas: Registra todas las llamadas a subflujos de trabajo o funciones de biblioteca y sus resultados.
- Sin registros: Sin registro de llamadas.
- Si actualizas el nivel del historial de ejecuciones, selecciona una de las siguientes opciones:
- Básico: Habilita el historial de ejecución básico. Esta es la opción predeterminada.
- Detallado: Habilita el historial de ejecución detallado, incluidos los valores de las variables dentro del alcance y la cantidad esperada de iteraciones.
Para guardar los cambios, haz clic en Guardar. Se implementa el flujo de trabajo actualizado.
Para editar los campos anteriores al mismo tiempo, o agregar o actualizar un activador, sigue estos pasos:
- Haz clic en Editar.
- Para editar la fuente, haz clic en Siguiente.
- Para guardar los cambios y, luego, implementar el flujo de trabajo actualizado, haz clic en Implementar.
Opcional: Para administrar qué principales tienen permiso para acceder a este recurso de flujo de trabajo o invocarlo, haz clic en la pestaña Permisos:
Para actualizar un principal existente, sigue estos pasos:
- Busca una fila que contenga la principal.
- Haz clic en Editar principal en esa fila.
- Haz clic en Agregar otro rol o en Borrar rol.
Si agregas un rol, en la lista Seleccionar un rol, elige un rol adecuado.
Para agregar otro rol, haz clic en Agregar otro rol.
Haz clic en Guardar.
gcloud
Abre una terminal.
Busca el nombre del flujo de trabajo que deseas actualizar. Si no conoces el nombre del flujo de trabajo, ingresa el siguiente comando para enumerar los flujos de trabajo en una ubicación:
gcloud workflows list --location=LOCATION
Reemplaza
LOCATIONpor el ID o el identificador completamente calificado de la ubicación de tu flujo de trabajo.Si actualizas el código fuente del flujo de trabajo, busca el archivo YAML o JSON en el que se guarda la fuente del flujo de trabajo, como
WORKFLOW_NAME.yamloWORKFLOW_NAME.json.Actualiza el flujo de trabajo ejecutando el comando
gcloud workflows deploycon las marcas de las propiedades que deseas cambiar.Puedes actualizar un flujo de trabajo existente para cambiar su fuente, descripción, etiquetas, variables de entorno, nivel de registro de llamadas, nivel de historial de ejecuciones, clave de encriptación o cuenta de servicio asociada. Debes especificar el nombre del flujo de trabajo que deseas actualizar; las marcas restantes son opcionales. Para quitar una clave de encriptación administrada por el cliente, usa la marca
--clear-kms-key.gcloud workflows deploy WORKFLOW_NAME \ --location=LOCATION \ --call-log-level=CALL_LOGGING_LEVEL \ --description="DESCRIPTION" \ --execution-history-level="EXECUTION_HISTORY_LEVEL" \ --labels="LABEL_KEY=LABEL_VALUE" \ --set-env-vars="ENV_KEY=ENV_VALUE" \ --kms-key=ENCRYPT_KEY \ --service-account=SERVICE_ACCOUNT@PROJECT_ID. \ --source=YAML_OR_JSON_SOURCE_FILE
Reemplaza lo siguiente:
WORKFLOW_NAME: obligatorio. Es el nombre de tu flujo de trabajo.LOCATION: Es opcional si se establece la propiedadworkflows/location; de lo contrario, es obligatorio. Es la ubicación del flujo de trabajo, por ejemplo,us-central1.CALL_LOGGING_LEVEL: es opcional. Nivel del registro de llamadas que se aplicará durante la ejecución. Puede ser una de las siguientes opciones:none: No se especifica ningún nivel de registro. Esta es la opción predeterminada. Un nivel de registro de ejecución tiene prioridad sobre cualquier nivel de registro de flujo de trabajo, a menos que no se especifique el nivel de registro de ejecución (predeterminado). En ese caso, se aplica el nivel de registro del flujo de trabajo.log-errors-only: Registra todas las excepciones detectadas; o cuando se detiene una llamada debido a una excepción.log-all-calls: Registra todas las llamadas a subflujos de trabajo o funciones de biblioteca y sus resultados.log-none: Sin registro de llamadas.
DESCRIPTION: es opcional. Es una descripción del flujo de trabajo.EXECUTION_HISTORY_LEVEL: es opcional. Nivel del historial de ejecuciones que se aplicará durante la ejecución. Puede ser una de las siguientes opciones:none: No se especifica ningún nivel de historial de ejecuciones. Esta es la opción predeterminada. Si no se especifica un nivel de historial de ejecución para una ejecución, se determina según el nivel que se aplica al flujo de trabajo. Si los niveles son diferentes, el parámetro de configuración que se aplica a nivel de la ejecución anula el que se aplica a nivel del flujo de trabajo para esta ejecución.execution-history-basic: habilita el historial de ejecuciones básico.execution-history-detailed: Habilita el historial de ejecución detallado, incluidos los valores de las variables dentro del alcance y la cantidad esperada de iteraciones.
LABEL_KEY=LABEL_VALUE: es opcional. Es una lista de pares clave-valor de etiquetas que te ayuda a organizar tus instancias deGoogle Cloud , por ejemplo,name=wrench. Para obtener más información, consulta ¿Qué son las etiquetas? Las ejecuciones del flujo de trabajo heredan las etiquetas del flujo de trabajo. Para ver las etiquetas de ejecución, usa el métodoworkflows.executions.listpara enumerar y filtrar las ejecuciones de flujos de trabajo.ENV_KEY=ENV_VALUE: es opcional. Lista de pares clave-valor de variable de entorno; por ejemplo,MONTH=January. Para obtener más información, consulta Usa variables de entorno.ENCRYPT_KEY: es opcional. Una clave de Cloud KMS que el flujo de trabajo debe usar para la encriptación de datos en el formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para obtener más información, consulta Usa claves de encriptación administradas por el cliente.SERVICE_ACCOUNT@PROJECT_ID.: Opcional. La cuenta de servicio que usa tu flujo de trabajo para acceder a otros servicios deGoogle Cloud . Si deseas actualizar los roles de tu cuenta de servicio, consulta Otorga un permiso de flujo de trabajo para acceder a los recursos deGoogle Cloud y Administra el acceso a proyectos, carpetas y organizaciones.YAML_OR_JSON_SOURCE_FILE: es opcional. Es el archivo de origen del flujo de trabajo en formato YAML o JSON. Por ejemplo:myFirstWorkflow.yaml
REST
Para actualizar un flujo de trabajo existente, usa el método
projects.locations.workflows.patch
y, de forma opcional, usa el parámetro de consulta updateMask para especificar una lista
de campos que se actualizarán.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
WORKFLOW_NAME: Es el nombre de tu flujo de trabajo, por ejemplo,myFirstWorkflow.DESCRIPTION: es opcional. Una descripción de tu flujo de trabajo. No debe tener más de 1,000 caracteres Unicode.LABEL_KEYyLABEL_VALUE: opcional. Es un mapa de pares clave-valor de etiquetas que te ayudan a organizar tus instancias de Google Cloud . Por ejemplo:{"name": "wrench", "mass": "1kg", "count": "3"}Para obtener más información, consulta ¿Qué son las etiquetas? Las etiquetas del flujo de trabajo se heredan de las ejecuciones del flujo de trabajo. Para ver las etiquetas de ejecución, usa el métodoworkflows.executions.listpara enumerar y filtrar las ejecuciones de flujos de trabajo.SERVICE_ACCOUNT@PROJECT_ID.: Es opcional. La cuenta de servicio que usará el flujo de trabajo para acceder a otros servicios de Google Cloud . El ID del proyecto es tu ID del proyecto de Google Cloud . Para obtener más información, consulta Crea una cuenta de servicio en este documento.ENCRYPT_KEY: es opcional. Una clave de Cloud KMS que el flujo de trabajo debe usar para la encriptación de datos en el formatoprojects/PROJECT_NAME/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME. Para obtener más información, consulta Usa claves de encriptación administradas por el cliente.CALL_LOGGING_LEVEL: es opcional. Es el nivel del registro de llamadas que se aplicará durante la ejecución. De forma predeterminada, no se especifica ningún nivel de registro y, en su lugar, se aplica el nivel de registro del flujo de trabajo. Para obtener más información, consulta Envía registros a Logging. Uno de los siguientes:CALL_LOG_LEVEL_UNSPECIFIED: No se especifica ningún nivel de registro y, en su lugar, se aplica el nivel de registro del flujo de trabajo. Esta es la opción predeterminada. De lo contrario, se aplica el nivel de registro de ejecución y tiene prioridad sobre el nivel de registro del flujo de trabajo.LOG_ERRORS_ONLY: Registra todas las excepciones detectadas; o cuando se detiene una llamada debido a una excepción.LOG_ALL_CALLS: Registra todas las llamadas a subflujos de trabajo o funciones de biblioteca y sus resultados.LOG_NONE: Sin registro de llamadas.
EXECUTION_HISTORY_LEVEL: Opcional. Es el nivel del historial de ejecuciones que se aplicará durante la ejecución. Para obtener más información, consulta Visualiza el historial de los pasos de ejecución. Uno de los siguientes:EXECUTION_HISTORY_LEVEL_UNSPECIFIED: No se especifica ningún nivel de historial de ejecución. Esta es la opción predeterminada. Si no se especifica un nivel de historial de ejecución para una ejecución, se determina según el nivel que se aplica al flujo de trabajo. Si los niveles son diferentes, el parámetro de configuración que se aplica en el nivel de ejecución anula el que se aplica en el nivel de flujo de trabajo para esta ejecución.EXECUTION_HISTORY_BASIC: habilita el historial de ejecuciones básico.EXECUTION_HISTORY_ADVANCED: Habilita el historial de ejecución detallado, incluidos los valores de las variables dentro del alcance y la cantidad esperada de iteraciones.
ENV_KEYyENV_VALUE: opcional. Un mapa de pares clave-valor de variable de entorno, por ejemplo,{ "month": "January", "day": "Monday"}. Para obtener más información, consulta Usa variables de entorno.SOURCE_CODE: Es la definición reducida del flujo de trabajo. Por ejemplo:{\"main\":{\"params\":[\"input\"],\"steps\":[{\"returnOutput\":{\"return\":\"Hello\"}}]}}.LOCATION: Es la región en la que se implementa el flujo de trabajo, por ejemplo,us-central1.UPDATE_FIELDS: es opcional. Una lista separada por comas de los campos que se deben actualizar. Si no se proporciona, se actualiza todo el flujo de trabajo. Por ejemplo,description,callLogLevel.
Cuerpo JSON de la solicitud:
{
"name": "WORKFLOW_NAME",
"description": "DESCRIPTION",
"labels": {"LABEL_KEY":"LABEL_VALUE"},
"serviceAccount": "SERVICE_ACCOUNT@PROJECT_ID.",
"cryptoKeyName": "ENCRYPT_KEY",
"callLogLevel": "CALL_LOGGING_LEVEL",
"executionHistoryLevel": "EXECUTION_HISTORY_LEVEL"
"userEnvVars": {"ENV_KEY":"ENV_VALUE"},
"sourceContents": "SOURCE_CODE"
}
Para enviar tu solicitud, expande una de estas opciones:
Si el proceso se realiza de forma correcta, el cuerpo de la respuesta contiene una instancia recién creada de
Operation:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
"createTime": "2023-12-05T14:06:06.338390918Z",
"target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
"verb": "update",
"apiVersion": "v1"
},
"done": false
}
Si el valor de "done" es false, la operación
aún está en curso.
Borra un flujo de trabajo
Puedes borrar un flujo de trabajo existente. Si borras un flujo de trabajo, también se borran sus ejecuciones y se cancelan las ejecuciones activas del flujo de trabajo.
Console
En la consola de Google Cloud , ve a la página Flujos de trabajo.
Haz clic en el nombre del flujo de trabajo que deseas borrar y, luego, en Borrar.
En el mensaje para confirmar la eliminación, ingresa el nombre del flujo de trabajo.
Haz clic en Confirmar.
gcloud
Abre una terminal.
Busca el nombre del flujo de trabajo que deseas borrar. Si no conoces el nombre del flujo de trabajo, ingresa el siguiente comando para enumerar los flujos de trabajo en una ubicación:
gcloud workflows list --location=LOCATION
Borra un flujo de trabajo con el comando
gcloud workflows delete:gcloud workflows delete WORKFLOW_NAME \ --location=LOCATION
Reemplaza lo siguiente:
WORKFLOW_NAME: El nombre de tu flujo de trabajo.LOCATION: Es el ID o el identificador completamente calificado para la ubicación de tu flujo de trabajo.
REST
Para borrar un flujo de trabajo con un nombre especificado, usa el
método projects.locations.workflows.delete.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
WORKFLOW_NAME: Es el nombre del flujo de trabajo que quieres borrar.PROJECT_ID: Es el ID del proyecto de Google Cloud.LOCATION: Es la región en la que se implementa el flujo de trabajo, por ejemplo,us-central1.
Para enviar tu solicitud, expande una de estas opciones:
Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene una instancia de
Operation:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.workflows.v1.OperationMetadata",
"createTime": "2023-12-05T14:06:06.338390918Z",
"target": "projects/PROJECT_ID/locations/LOCATION/workflows/WORKFLOW_NAME",
"verb": "delete",
"apiVersion": "v1"
},
"done": false
}
Si el valor de "done" es false, la operación
aún está en curso.