La plantilla de Pub/Sub a Pub/Sub es un flujo de procesamiento en streaming que lee mensajes de una suscripción de Pub/Sub y los escribe en otro tema de Pub/Sub. La canalización también acepta una clave de atributo de mensaje opcional y un valor que se puede usar para filtrar los mensajes que se deben escribir en el tema de Pub/Sub. Puedes usar esta plantilla para copiar mensajes de una suscripción de Pub/Sub a otro tema de Pub/Sub con un filtro de mensajes opcional.
Requisitos del flujo de procesamiento
- Se debe crear la suscripción de origen de Pub/Sub antes de la ejecución.
- La suscripción de Pub/Sub de origen debe ser una suscripción de extracción.
- Se debe crear el tema de Pub/Sub de destino antes de la ejecución.
Parámetros de plantilla
Parámetros obligatorios
- inputSubscription la suscripción de Pub/Sub de la que se leerán los datos de entrada. Por ejemplo,
projects/your-project-id/subscriptions/your-subscription-name
. - outputTopic el tema de Pub/Sub en el que se escribirá la salida. Por ejemplo,
projects/your-project-id/topics/your-topic-name
.
Parámetros opcionales
- filterKey la clave de atributo que se usará para filtrar eventos. No se aplica ningún filtro si no se especifica
filterKey
. - filterValue el valor del atributo que se va a usar para filtrar eventos cuando se proporcione un
filterKey
. De forma predeterminada, se usa un valor nulofilterValue
.
Ejecutar la plantilla
Consola
- Ve a la página Crear tarea a partir de plantilla de Dataflow. Ir a Crear tarea a partir de plantilla
- En el campo Nombre de la tarea, introduce un nombre único.
- Opcional: En Endpoint regional, seleccione un valor en el menú desplegable. La región predeterminada es
us-central1
.Para ver una lista de las regiones en las que puedes ejecutar una tarea de Dataflow, consulta Ubicaciones de Dataflow.
- En el menú desplegable Plantilla de flujo de datos, seleccione the Pub/Sub to Pub/Sub template.
- En los campos de parámetros proporcionados, introduzca los valores de los parámetros.
- Opcional: Para cambiar del procesamiento una sola vez al modo de streaming al menos una vez, selecciona Al menos una vez.
- Haz clic en Ejecutar trabajo.
gcloud
En tu shell o terminal, ejecuta la plantilla:
gcloud dataflow jobs run JOB_NAME \ --gcs-location gs://dataflow-templates-REGION_NAME/VERSION/Cloud_PubSub_to_Cloud_PubSub \ --region REGION_NAME \ --staging-location STAGING_LOCATION \ --parameters \ inputSubscription=projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME,\ outputTopic=projects/PROJECT_ID/topics/TOPIC_NAME,\ filterKey=FILTER_KEY,\ filterValue=FILTER_VALUE
Haz los cambios siguientes:
JOB_NAME
: un nombre de trabajo único que elijasREGION_NAME
: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo,us-central1
VERSION
: la versión de la plantilla que quieres usarPuedes usar los siguientes valores:
latest
para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/- el nombre de la versión, como
2023-09-12-00_RC00
, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
: la ubicación de los archivos locales de almacenamiento provisional (por ejemplo,gs://your-bucket/staging
)SUBSCRIPTION_NAME
: el nombre de la suscripción de Pub/SubTOPIC_NAME
: el nombre del tema de Pub/SubFILTER_KEY
: la clave de atributo por la que se filtran los eventos. No se aplican filtros si no se especifica ninguna clave.FILTER_VALUE
: valor del atributo de filtro que se va a usar si se proporciona una clave de filtro de eventos. Acepta una cadena de expresión regular de Java válida como valor de filtro de eventos. Si se proporciona una expresión regular, debe coincidir la expresión completa para que se filtre el mensaje. Las coincidencias parciales (como las subcadenas) no se filtran. De forma predeterminada, se usa un valor de filtro de eventos nulo.
API
Para ejecutar la plantilla mediante la API REST, envía una solicitud HTTP POST. Para obtener más información sobre la API y sus ámbitos de autorización, consulta projects.templates.launch
.
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates-LOCATION/VERSION/Cloud_PubSub_to_Cloud_PubSub { "jobName": "JOB_NAME", "environment": { "ipConfiguration": "WORKER_IP_UNSPECIFIED", "additionalExperiments": [] }, "parameters": { "inputSubscription": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME", "outputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME", "filterKey": "FILTER_KEY", "filterValue": "FILTER_VALUE" } }
Haz los cambios siguientes:
PROJECT_ID
: el ID del proyecto Google Cloud en el que quieres ejecutar la tarea de DataflowJOB_NAME
: un nombre de trabajo único que elijasLOCATION
: la región en la que quieras desplegar tu trabajo de Dataflow. Por ejemplo,us-central1
VERSION
: la versión de la plantilla que quieres usarPuedes usar los siguientes valores:
latest
para usar la última versión de la plantilla, que está disponible en la carpeta principal sin fecha del contenedor: gs://dataflow-templates-REGION_NAME/latest/- el nombre de la versión, como
2023-09-12-00_RC00
, para usar una versión específica de la plantilla, que se encuentra anidada en la carpeta principal correspondiente con la fecha en el bucket: gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
: la ubicación de los archivos locales de almacenamiento provisional (por ejemplo,gs://your-bucket/staging
)SUBSCRIPTION_NAME
: el nombre de la suscripción de Pub/SubTOPIC_NAME
: el nombre del tema de Pub/SubFILTER_KEY
: la clave de atributo por la que se filtran los eventos. No se aplican filtros si no se especifica ninguna clave.FILTER_VALUE
: valor del atributo de filtro que se va a usar si se proporciona una clave de filtro de eventos. Acepta una cadena de expresión regular de Java válida como valor de filtro de eventos. Si se proporciona una expresión regular, debe coincidir la expresión completa para que se filtre el mensaje. Las coincidencias parciales (como las subcadenas) no se filtran. De forma predeterminada, se usa un valor de filtro de eventos nulo.
Siguientes pasos
- Consulta información sobre las plantillas de Dataflow.
- Consulta la lista de plantillas proporcionadas por Google.