Modelo Pub/Sub para Pub/Sub

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 nulo filterValue.

Execute o modelo

Consola

  1. Aceda à página do fluxo de dados Criar tarefa a partir de um modelo.
  2. Aceda a Criar tarefa a partir de modelo
  3. No campo Nome da tarefa, introduza um nome exclusivo para a tarefa.
  4. 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.

  5. No menu pendente Modelo do fluxo de dados, selecione the Pub/Sub to Pub/Sub template.
  6. Nos campos de parâmetros fornecidos, introduza os valores dos parâmetros.
  7. Opcional: para mudar do processamento exatamente uma vez para o modo de streaming pelo menos uma vez, selecione Pelo menos uma vez.
  8. 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 escolha
  • REGION_NAME: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • STAGING_LOCATION: a localização para organizar ficheiros locais (por exemplo, gs://your-bucket/staging)
  • SUBSCRIPTION_NAME: o nome da subscrição do Pub/Sub
  • TOPIC_NAME: o nome do tópico do Pub/Sub
  • FILTER_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 Cloud
  • JOB_NAME: um nome de tarefa exclusivo à sua escolha
  • LOCATION: a região onde quer implementar a tarefa do Dataflow, por exemplo, us-central1
  • VERSION: a versão do modelo que quer usar

    Pode usar os seguintes valores:

  • STAGING_LOCATION: a localização para organizar ficheiros locais (por exemplo, gs://your-bucket/staging)
  • SUBSCRIPTION_NAME: o nome da subscrição do Pub/Sub
  • TOPIC_NAME: o nome do tópico do Pub/Sub
  • FILTER_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?