Modelo do Pub/Sub para Redis

O modelo do Pub/Sub para Redis é um pipeline de streaming que lê mensagens de uma assinatura do Pub/Sub e grava o payload da mensagem no Redis. O caso de uso mais comum deste modelo é exportar registros para o Redis Enterprise para análise de registros baseada em pesquisa avançada em tempo real.

  • Para ter mais segurança, ative uma conexão SSL ao configurar a conexão do endpoint do banco de dados. Este modelo não é compatível com TLS mútuo.

Requisitos de pipeline

  • A inscrição do Pub/Sub de origem precisa existir antes da execução do pipeline.
  • O endpoint do banco de dados do Redis precisa ser acessível na sub-rede dos workers do Dataflow.

Parâmetros do modelo

Parâmetros obrigatórios

  • inputSubscription: a assinatura do Pub/Sub em que a entrada será lida. Por exemplo, projects/<PROJECT_ID>/subscriptions/<SUBSCRIPTION_ID>.
  • redisHost: o host do banco de dados do Redis. Por exemplo, your.cloud.db.redislabs.com. O padrão é: 127.0.0.1.
  • redisPort: a porta do banco de dados do Redis. Por exemplo, 12345. O padrão é: 6379.
  • redisPassword: a senha do banco de dados do Redis. O padrão é empty.

Parâmetros opcionais

  • sslEnabled: o parâmetro SSL do banco de dados do Redis. O padrão é: falso.
  • redisSinkType: o coletor do Redis. Os valores aceitos são STRING_SINK, HASH_SINK, STREAMS_SINK, and LOGGING_SINK. Por exemplo, STRING_SINK. O padrão é: STRING_SINK.
  • connectionTimeout: o tempo limite da conexão do Redis em milissegundos. Por exemplo, 2000. O padrão é: 2000.
  • ttl: o prazo de validade da chave em segundos. O padrão de ttl para HASH_SINK é -1, o que significa que ele nunca expira.

Executar o modelo

Console

  1. Acesse a página Criar job usando um modelo do Dataflow.
  2. Acesse Criar job usando um modelo
  3. No campo Nome do job, insira um nome exclusivo.
  4. Opcional: em Endpoint regional, selecione um valor no menu suspenso. A região padrão é us-central1.

    Para ver uma lista de regiões em que é possível executar um job do Dataflow, consulte Locais do Dataflow.

  5. No menu suspenso Modelo do Dataflow, selecione the Pub/Sub to Redis template.
  6. Nos campos de parâmetro fornecidos, insira os valores de parâmetro.
  7. Cliquem em Executar job.

gcloud

No shell ou no terminal, execute o modelo:

gcloud dataflow flex-template run JOB_NAME \
    --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/Cloud_PubSub_to_Redis \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --parameters \
       inputSubscription=INPUT_SUBSCRIPTION,\
       redisHost=REDIS_HOST,\
       redisPort=REDIS_PORT,\
       redisPassword=REDIS_PASSWORD,\

Substitua:

  • JOB_NAME: um nome de job de sua escolha
  • VERSION: a versão do modelo que você quer usar

    Use estes valores:

  • REGION_NAME: a região em que você quer implantar o job do Dataflow, por exemplo, us-central1
  • INPUT_SUBSCRIPTION: a assinatura de entrada do Pub/Sub.
  • REDIS_HOST: o host do banco de dados Redis
  • REDIS_PORT: a porta do banco de dados Redis
  • REDIS_PASSWORD: a senha do banco de dados Redis

API

Para executar o modelo usando a API REST, envie uma solicitação HTTP POST. Para mais informações sobre a API e os respectivos escopos de autorização, consulte projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launchParameter": {
     "jobName": "JOB_NAME",
     "parameters": {
       "inputSubscription": "INPUT_SUBSCRIPTION",
       "redisHost": "REDIS_HOST",
       "redisPort": "REDIS_PORT",
       "redisPassword": "REDIS_PASSWORD",
     },
     "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/Cloud_PubSub_to_Redis",
     "environment": { "maxWorkers": "10" }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto Google Cloud em que você quer executar o job do Dataflow
  • JOB_NAME: um nome de job de sua escolha
  • VERSION: a versão do modelo que você quer usar

    Use estes valores:

  • LOCATION: a região em que você quer implantar o job do Dataflow, por exemplo, us-central1
  • INPUT_SUBSCRIPTION: a assinatura de entrada do Pub/Sub.
  • REDIS_HOST: o host do banco de dados Redis
  • REDIS_PORT: a porta do banco de dados Redis
  • REDIS_PASSWORD: a senha do banco de dados Redis

A seguir