O modelo Pub/Sub para Pub/Sub é um pipeline de streaming que lê mensagens de uma subscrição do Pub/Sub e escreve as mensagens noutro tópico do Pub/Sub. O pipeline também aceita uma chave de atributo de mensagem opcional e um valor que pode ser usado para filtrar as mensagens que devem ser escritas no tópico do Pub/Sub. Pode usar este modelo para copiar mensagens de uma subscrição do Pub/Sub para outro tópico do Pub/Sub com um filtro de mensagens opcional.
Requisitos do pipeline
- A subscrição do Pub/Sub de origem tem de existir antes da execução.
- A subscrição do Pub/Sub de origem tem de ser uma subscrição de obtenção.
- O tópico Pub/Sub de destino tem de existir antes da execução.
Parâmetros de modelos
Parâmetros obrigatórios
- inputSubscription: a subscrição do Pub/Sub a partir da qual ler a entrada. Por exemplo,
projects/your-project-id/subscriptions/your-subscription-name
. - outputTopic: o tópico do Pub/Sub para o qual escrever a saída. Por exemplo,
projects/your-project-id/topics/your-topic-name
.
Parâmetros opcionais
- filterKey: a chave do atributo a usar para filtrar eventos. Se
filterKey
não for especificado, não são aplicados filtros. - filterValue: o valor do atributo a usar para filtrar eventos quando é fornecido um
filterKey
. Por predefinição, é usado um valor nulofilterValue
.
Execute o modelo
Consola
- Aceda à página do fluxo de dados Criar tarefa a partir de um modelo. Aceda a Criar tarefa a partir de modelo
- No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
- Opcional: para Ponto final regional, selecione um valor no menu pendente. A região
predefinida é
us-central1
.Para ver uma lista das regiões onde pode executar uma tarefa do Dataflow, consulte as localizações do Dataflow.
- No menu pendente Modelo do fluxo de dados, selecione the Pub/Sub to Pub/Sub template.
- Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
- Opcional: para mudar do processamento exatamente uma vez para o modo de streaming pelo menos uma vez, selecione Pelo menos uma vez.
- Clique em Executar tarefa.
gcloud
Na shell ou no terminal, execute o modelo:
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
Substitua o seguinte:
JOB_NAME
: um nome de tarefa exclusivo à sua escolhaREGION_NAME
: a região onde quer implementar a tarefa do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que quer usarPode usar os seguintes valores:
latest
para usar a versão mais recente do modelo, que está disponível na pasta principal sem data no contentor: gs://dataflow-templates-REGION_NAME/latest/- o nome da versão, como
2023-09-12-00_RC00
, para usar uma versão específica do modelo, que pode ser encontrada aninhada na pasta principal com a data correspondente no contentor: gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
: a localização para organizar ficheiros locais (por exemplo,gs://your-bucket/staging
)SUBSCRIPTION_NAME
: o nome da subscrição do Pub/SubTOPIC_NAME
: o nome do tópico do Pub/SubFILTER_KEY
: a chave do atributo pela qual os eventos são filtrados. Não são aplicados filtros se não for especificada nenhuma chave.FILTER_VALUE
: valor do atributo de filtro a usar se for fornecida uma chave de filtro de eventos. Aceita uma string Java Regex válida como um valor de filtro de eventos. Caso seja fornecida uma regex, a expressão completa deve corresponder para que a mensagem seja filtrada. As correspondências parciais (como a subcadeia de carateres) não são filtradas. É usado um valor de filtro de eventos nulo por predefinição.
API
Para executar o modelo através da API REST, envie um pedido HTTP POST. Para mais informações sobre a API e os respetivos âmbitos de autorização, consulte 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" } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde quer executar a tarefa do Dataflow Google CloudJOB_NAME
: um nome de tarefa exclusivo à sua escolhaLOCATION
: a região onde quer implementar a tarefa do Dataflow, por exemplo,us-central1
VERSION
: a versão do modelo que quer usarPode usar os seguintes valores:
latest
para usar a versão mais recente do modelo, que está disponível na pasta principal sem data no contentor: gs://dataflow-templates-REGION_NAME/latest/- o nome da versão, como
2023-09-12-00_RC00
, para usar uma versão específica do modelo, que pode ser encontrada aninhada na pasta principal com a data correspondente no contentor: gs://dataflow-templates-REGION_NAME/
STAGING_LOCATION
: a localização para organizar ficheiros locais (por exemplo,gs://your-bucket/staging
)SUBSCRIPTION_NAME
: o nome da subscrição do Pub/SubTOPIC_NAME
: o nome do tópico do Pub/SubFILTER_KEY
: a chave do atributo pela qual os eventos são filtrados. Não são aplicados filtros se não for especificada nenhuma chave.FILTER_VALUE
: valor do atributo de filtro a usar se for fornecida uma chave de filtro de eventos. Aceita uma string Java Regex válida como um valor de filtro de eventos. Caso seja fornecida uma regex, a expressão completa deve corresponder para que a mensagem seja filtrada. As correspondências parciais (como a subcadeia de carateres) não são filtradas. É usado um valor de filtro de eventos nulo por predefinição.
O que se segue?
- Saiba mais sobre os modelos do Dataflow.
- Consulte a lista de modelos fornecidos pela Google.