Herramienta: create_workflow_invocation
Crea una nueva invocación de flujo de trabajo en un repositorio de Dataform determinado.
El valor del parámetro parent debe tener el formato projects/{project_id}/locations/{location}/repositories/{repository}.
Se requiere el valor del parámetro compilation_result o workflow_config.
- Si usas
compilation_result, el valor del parámetro debe tener el formatoprojects/{project_id}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}. - Si usas
workflow_config, el valor del parámetro debe tener el formatoprojects/{project_id}/locations/{location}/repositories/{repository}/workflowConfigs/{workflow_config}.
Requisito previo: Para activar una invocación, primero debes crear un compilation_result con la herramienta create_compilation_result o un workflow_config con la herramienta create_workflow_config. No puedes activar una invocación directamente desde el código sin procesar del repositorio.
La invocación del flujo de trabajo se ejecuta con una cuenta de servicio determinada por la fuente de compilación:
- Si usas
compilation_result, establece el valor del parámetroinvocationConfig.serviceAccount. Si se omite, se usa elservice_accountpredeterminado del repositorio. - Si usas
workflow_config, no establezcas el parámetroinvocationConfig. La invocación se ejecuta automáticamente con la cuenta de servicio configurada en esa configuración del flujo de trabajo.
La cuenta de servicio no puede ser el agente de servicio predeterminado de Dataform. La cuenta de servicio debe tener los permisos necesarios para ejecutar el flujo de trabajo, y el usuario debe estar autorizado para actuar como la cuenta de servicio seleccionada. Por lo general, esta autorización se otorga a través del rol de usuario de cuenta de servicio (roles/iam.serviceAccountUser), que se puede otorgar en la cuenta de servicio o en el proyecto que la contiene.
En la siguiente muestra de código, se muestra cómo usar curl para llamar a la herramienta de MCP create_workflow_invocation.
| Solicitud de Curl |
|---|
curl --location 'https://dataform.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_workflow_invocation", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Esquema de entrada
Mensaje de solicitud de CreateWorkflowInvocation.
CreateWorkflowInvocationRequest
| Representación JSON |
|---|
{
"parent": string,
"workflowInvocation": {
object ( |
| Campos | |
|---|---|
parent |
Obligatorio. Es el repositorio en el que se creará la invocación del flujo de trabajo. Debe tener el formato |
workflowInvocation |
Obligatorio. Es el recurso de invocación del flujo de trabajo que se creará. |
WorkflowInvocation
| Representación JSON |
|---|
{ "name": string, "invocationConfig": { object ( |
| Campos | |
|---|---|
name |
Solo salida. Es el nombre de la invocación del flujo de trabajo. |
invocationConfig |
Inmutable. Si no se configura, se usará un InvocationConfig predeterminado. |
state |
Solo salida. Es el estado actual de la invocación del flujo de trabajo. |
invocationTiming |
Solo salida. Son los detalles de la sincronización de la invocación del flujo de trabajo. |
resolvedCompilationResult |
Solo salida. Es el resultado de la compilación resuelto que se usó para crear esta invocación. Tendrá el formato |
dataEncryptionState |
Solo salida. Solo se configura si el repositorio tiene una clave de KMS. |
privateResourceMetadata |
Solo salida. Metadatos que indican si este recurso está centrado en el usuario. El recurso |
pipelineConfig |
Solo salida. Son las opciones de canalización que definen el tipo y la ruta de acceso de la canalización dentro del repositorio de Git. |
Campo de unión compilation_source. Es la fuente del resultado de la compilación que se usará para esta invocación. compilation_source puede ser solo uno de los parámetros siguientes: |
|
compilationResult |
Inmutable. Nombre del resultado de la compilación que se usará para esta invocación. Debe tener el formato |
workflowConfig |
Inmutable. Es el nombre de la configuración del flujo de trabajo que se invocará. Debe tener el formato |
Campo de unión
|
|
internalMetadata |
Solo salida. Toda la información de metadatos que se usa de forma interna para entregar el recurso. Por ejemplo, marcas de tiempo, marcas, campos de estado, etcétera. El formato de este campo es una cadena JSON. |
InvocationConfig
| Representación JSON |
|---|
{ "includedTargets": [ { object ( |
| Campos | |
|---|---|
includedTargets[] |
Es opcional. Es el conjunto de identificadores de acciones que se incluirán. |
includedTags[] |
Es opcional. Es el conjunto de etiquetas que se incluirán. |
transitiveDependenciesIncluded |
Es opcional. Cuando se establece como verdadero, se ejecutarán las dependencias transitivas de las acciones incluidas. |
transitiveDependentsIncluded |
Es opcional. Cuando se establece como verdadero, se ejecutarán las dependencias transitivas de las acciones incluidas. |
fullyRefreshIncrementalTablesEnabled |
Es opcional. Cuando se establece en verdadero, se actualizan por completo todas las tablas incrementales. |
serviceAccount |
Es opcional. Es la cuenta de servicio con la que se ejecutan las invocaciones de flujo de trabajo. |
Campo de unión
|
|
queryPriority |
Es opcional. Especifica la prioridad para la ejecución de la consulta en BigQuery. Puedes encontrar más información en https://cloud.google.com/bigquery/docs/running-queries#queries. |
Objetivo
| Representación JSON |
|---|
{ "database": string, "schema": string, "name": string } |
| Campos | |
|---|---|
database |
Es opcional. Es la base de datos de la acción (ID del proyecto de Google Cloud) . |
schema |
Es opcional. Es el esquema de la acción (ID del conjunto de datos de BigQuery) dentro de |
name |
Es opcional. Nombre de la acción, dentro de |
Intervalo
| Representación JSON |
|---|
{ "startTime": string, "endTime": string } |
| Campos | |
|---|---|
startTime |
Opcional. Es el inicio inclusivo del intervalo. Si se especifica, la marca de tiempo que coincida con este intervalo deberá ser igual o posterior al inicio. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
endTime |
Opcional. Es el final exclusivo del intervalo. Si se especifica, la marca de tiempo que coincida con este intervalo deberá ser anterior al final. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
Marca de tiempo
| Representación JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Representa los segundos de la hora UTC desde la época de Unix 1970-01-01T00:00:00Z. Debe estar entre -62135596800 y 253402300799 inclusive (lo que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z). |
nanos |
Fracciones no negativas de un segundo a una resolución de nanosegundos. Este campo es la parte de nanosegundos de la duración, no una alternativa a los segundos. Los valores de segundos negativos con fracciones deben tener valores nanos no negativos que se cuentan hacia adelante en el tiempo. Debe ser un valor entre 0 y 999,999,999, inclusive. |
DataEncryptionState
| Representación JSON |
|---|
{ "kmsKeyVersionName": string } |
| Campos | |
|---|---|
kmsKeyVersionName |
Obligatorio. Es el nombre de la versión de la clave de KMS con la que se encriptan los datos de un recurso. |
PrivateResourceMetadata
| Representación JSON |
|---|
{ "userScoped": boolean } |
| Campos | |
|---|---|
userScoped |
Solo salida. Si es verdadero, este recurso está centrado en el usuario, lo que significa que es un espacio de trabajo o se obtuvo de uno. |
PipelineConfig
| Representación JSON |
|---|
{
"pipelineType": enum ( |
| Campos | |
|---|---|
pipelineType |
Obligatorio. Es el tipo de canalización. |
path |
Obligatorio. Es la ruta de acceso relativa dentro del repositorio de Git en la que se define la canalización. Por ejemplo, para una canalización de Dataform, es una ruta de acceso a la carpeta en la que se encuentra |
QueryPriority
Tipos de prioridad para la ejecución de consultas en BigQuery.
| Enums | |
|---|---|
QUERY_PRIORITY_UNSPECIFIED |
Valor predeterminado. Este valor no se usa. |
INTERACTIVE |
La consulta se ejecutará en BigQuery con prioridad interactiva. Puedes encontrar más información en https://cloud.google.com/bigquery/docs/running-queries#queries. |
BATCH |
La consulta se ejecutará en BigQuery con prioridad por lotes. Puedes encontrar más información en https://cloud.google.com/bigquery/docs/running-queries#batchqueries. |
Estado
Representa el estado actual de una invocación de flujo de trabajo.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Valor predeterminado. Este valor no se usa. |
RUNNING |
La invocación del flujo de trabajo se está ejecutando en este momento. |
SUCCEEDED |
Se invocó correctamente el flujo de trabajo. Es un estado terminal. |
CANCELLED |
Se canceló la invocación del flujo de trabajo. Es un estado terminal. |
FAILED |
No se pudo invocar el flujo de trabajo. Es un estado terminal. |
CANCELING |
Se está cancelando la invocación del flujo de trabajo, pero algunas acciones aún se están ejecutando. |
PipelineType
Es el tipo de canalización. Es posible que se extienda en el futuro. En caso de que sea UNSPECIFIED, se arrojará el error.
| Enums | |
|---|---|
PIPELINE_TYPE_UNSPECIFIED |
Valor predeterminado. Este valor no se usa. |
DATAFORM |
Es una canalización de Dataform normal. |
SQL |
Es un recurso de archivo único en SQL. |
NOTEBOOK |
Es el recurso de archivo único del notebook. |
Esquema de salida
Representa una sola invocación de un resultado de compilación.
WorkflowInvocation
| Representación JSON |
|---|
{ "name": string, "invocationConfig": { object ( |
| Campos | |
|---|---|
name |
Solo salida. Es el nombre de la invocación del flujo de trabajo. |
invocationConfig |
Inmutable. Si no se configura, se usará un InvocationConfig predeterminado. |
state |
Solo salida. Es el estado actual de la invocación del flujo de trabajo. |
invocationTiming |
Solo salida. Son los detalles de la sincronización de la invocación del flujo de trabajo. |
resolvedCompilationResult |
Solo salida. Es el resultado de la compilación resuelto que se usó para crear esta invocación. Tendrá el formato |
dataEncryptionState |
Solo salida. Solo se configura si el repositorio tiene una clave de KMS. |
privateResourceMetadata |
Solo salida. Metadatos que indican si este recurso está centrado en el usuario. El recurso |
pipelineConfig |
Solo salida. Son las opciones de canalización que definen el tipo y la ruta de acceso de la canalización dentro del repositorio de Git. |
Campo de unión compilation_source. Es la fuente del resultado de la compilación que se usará para esta invocación. compilation_source puede ser solo uno de los parámetros siguientes: |
|
compilationResult |
Inmutable. Nombre del resultado de la compilación que se usará para esta invocación. Debe tener el formato |
workflowConfig |
Inmutable. Es el nombre de la configuración del flujo de trabajo que se invocará. Debe tener el formato |
Campo de unión
|
|
internalMetadata |
Solo salida. Toda la información de metadatos que se usa de forma interna para entregar el recurso. Por ejemplo, marcas de tiempo, marcas, campos de estado, etcétera. El formato de este campo es una cadena JSON. |
InvocationConfig
| Representación JSON |
|---|
{ "includedTargets": [ { object ( |
| Campos | |
|---|---|
includedTargets[] |
Es opcional. Es el conjunto de identificadores de acciones que se incluirán. |
includedTags[] |
Es opcional. Es el conjunto de etiquetas que se incluirán. |
transitiveDependenciesIncluded |
Es opcional. Cuando se establece como verdadero, se ejecutarán las dependencias transitivas de las acciones incluidas. |
transitiveDependentsIncluded |
Es opcional. Cuando se establece como verdadero, se ejecutarán las dependencias transitivas de las acciones incluidas. |
fullyRefreshIncrementalTablesEnabled |
Es opcional. Cuando se establece en verdadero, se actualizan por completo todas las tablas incrementales. |
serviceAccount |
Es opcional. Es la cuenta de servicio con la que se ejecutan las invocaciones de flujo de trabajo. |
Campo de unión
|
|
queryPriority |
Es opcional. Especifica la prioridad para la ejecución de la consulta en BigQuery. Puedes encontrar más información en https://cloud.google.com/bigquery/docs/running-queries#queries. |
Objetivo
| Representación JSON |
|---|
{ "database": string, "schema": string, "name": string } |
| Campos | |
|---|---|
database |
Es opcional. Es la base de datos de la acción (ID del proyecto de Google Cloud) . |
schema |
Es opcional. Es el esquema de la acción (ID del conjunto de datos de BigQuery) dentro de |
name |
Es opcional. Nombre de la acción, dentro de |
Intervalo
| Representación JSON |
|---|
{ "startTime": string, "endTime": string } |
| Campos | |
|---|---|
startTime |
Opcional. Es el inicio inclusivo del intervalo. Si se especifica, la marca de tiempo que coincida con este intervalo deberá ser igual o posterior al inicio. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
endTime |
Opcional. Es el final exclusivo del intervalo. Si se especifica, la marca de tiempo que coincida con este intervalo deberá ser anterior al final. Usa el formato RFC 3339, en el que el resultado generado siempre usará la normalización Z y los dígitos fraccionarios 0, 3, 6 o 9. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: |
Marca de tiempo
| Representación JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Campos | |
|---|---|
seconds |
Representa los segundos de la hora UTC desde la época de Unix 1970-01-01T00:00:00Z. Debe estar entre -62135596800 y 253402300799 inclusive (lo que corresponde a 0001-01-01T00:00:00Z a 9999-12-31T23:59:59Z). |
nanos |
Fracciones no negativas de un segundo a una resolución de nanosegundos. Este campo es la parte de nanosegundos de la duración, no una alternativa a los segundos. Los valores de segundos negativos con fracciones deben tener valores nanos no negativos que se cuentan hacia adelante en el tiempo. Debe ser un valor entre 0 y 999,999,999, inclusive. |
DataEncryptionState
| Representación JSON |
|---|
{ "kmsKeyVersionName": string } |
| Campos | |
|---|---|
kmsKeyVersionName |
Obligatorio. Es el nombre de la versión de la clave de KMS con la que se encriptan los datos de un recurso. |
PrivateResourceMetadata
| Representación JSON |
|---|
{ "userScoped": boolean } |
| Campos | |
|---|---|
userScoped |
Solo salida. Si es verdadero, este recurso está centrado en el usuario, lo que significa que es un espacio de trabajo o se obtuvo de uno. |
PipelineConfig
| Representación JSON |
|---|
{
"pipelineType": enum ( |
| Campos | |
|---|---|
pipelineType |
Obligatorio. Es el tipo de canalización. |
path |
Obligatorio. Es la ruta de acceso relativa dentro del repositorio de Git en la que se define la canalización. Por ejemplo, para una canalización de Dataform, es una ruta de acceso a la carpeta en la que se encuentra |
QueryPriority
Tipos de prioridad para la ejecución de consultas en BigQuery.
| Enums | |
|---|---|
QUERY_PRIORITY_UNSPECIFIED |
Valor predeterminado. Este valor no se usa. |
INTERACTIVE |
La consulta se ejecutará en BigQuery con prioridad interactiva. Puedes encontrar más información en https://cloud.google.com/bigquery/docs/running-queries#queries. |
BATCH |
La consulta se ejecutará en BigQuery con prioridad por lotes. Puedes encontrar más información en https://cloud.google.com/bigquery/docs/running-queries#batchqueries. |
Estado
Representa el estado actual de una invocación de flujo de trabajo.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Valor predeterminado. Este valor no se usa. |
RUNNING |
La invocación del flujo de trabajo se está ejecutando en este momento. |
SUCCEEDED |
Se invocó correctamente el flujo de trabajo. Es un estado terminal. |
CANCELLED |
Se canceló la invocación del flujo de trabajo. Es un estado terminal. |
FAILED |
No se pudo invocar el flujo de trabajo. Es un estado terminal. |
CANCELING |
Se está cancelando la invocación del flujo de trabajo, pero algunas acciones aún se están ejecutando. |
PipelineType
Es el tipo de canalización. Es posible que se extienda en el futuro. En caso de que sea UNSPECIFIED, se arrojará el error.
| Enums | |
|---|---|
PIPELINE_TYPE_UNSPECIFIED |
Valor predeterminado. Este valor no se usa. |
DATAFORM |
Es una canalización de Dataform normal. |
SQL |
Es un recurso de archivo único en SQL. |
NOTEBOOK |
Es el recurso de archivo único del notebook. |
Anotaciones de herramientas
Las anotaciones de herramientas se envían a los clientes de MCP para describir el riesgo básico de una herramienta determinada. La mayoría de los clientes tratan estas sugerencias como no confiables, pero se pueden usar para decidir cuándo se le puede enviar un mensaje de confirmación a un usuario.
Junto con la cadena de título, se definen las siguientes sugerencias booleanas:
readOnlyHint: Si es verdadero, la herramienta no modifica su entorno. Valor predeterminado: false.destructiveHint: Si es verdadero, la herramienta puede realizar acciones destructivas. Si es falso, la herramienta solo puede realizar acciones aditivas. Valor predeterminado: true.idempotentHint: Si es verdadero, llamar a la herramienta de forma repetida con los mismos argumentos no tendrá ningún efecto adicional en su entorno. Valor predeterminado: false.openWorldHint: Si es verdadero, la herramienta puede interactuar con un "mundo abierto" de entidades externas. Si es falso, la herramienta solo puede interactuar con entidades internas. Por ejemplo, una herramienta de búsqueda web sería de mundo abierto, mientras que una herramienta de memoria no lo sería.
Sugerencia destructiva: ❌ | Sugerencia idempotente: ❌ | Sugerencia de solo lectura: ❌ | Sugerencia de mundo abierto: ❌