Como configuro e testo o Canvas Live Events usando entrega HTTPS?

Os Serviços de Dados do Canvas oferecem duas opções para entrega de dados, cada uma implantada para receber o mesmo conjunto de eventos ao vivo do Canvas: Endpoint HTTPS e fila AWS SQS. HTTPS e AWS SQS podem ser executados simultaneamente.

Este artigo discute como configurar e testar a entrega HTTPS no Canvas Live Events. Saiba mais sobre a entrega SQS.

Nota: Os dados de eventos em tempo real são processados na mesma região que a instância do Canvas de onde são emitidos.

Detalhes da configuração

Você pode implementar uma função do Google Cloud para receber eventos do Canvas e armazená-los em um intervalo do Google Cloud Storage.

As etapas a seguir são necessárias para processar as mensagens recebidas do Canvas Live Event por meio do endpoint HTTPS:

  1. Cargas JWT assinadas devem ser definidas como Ativadas
  2. A mensagem do evento, uma vez recebida pelo Google Cloud Function, deve ser decodificada usando RS256.  
  3. Uma vez decodificada, a assinatura JWT conterá uma propriedade "kid". Esta propriedade deve ser comparada com um dos valores "kid" recuperados deste URL público: https://8axpcl50e4.execute-api.us-east-1.amazonaws.com/main/jwks
  4. Transforme a carga útil e armazene o evento resultante. Em outras palavras, não armazene mensagens assinadas e codificadas por muito tempo, porque os valores "kid" eventualmente expirarão. A AWS alterna as chaves uma vez por mês no dia 30. O "kid" mais atual é o do meio.

Cabeçalhos de eventos

Além disso, existem três tipos de cabeçalhos quando o Canvas gera um evento:

  1. Solicite o cabeçalho quando o evento for disparado no Canvas (assumindo que o evento foi gerado com base na solicitação). Os dados da solicitação são colocados em um objeto de metadados de evento, por exemplo, método, ID da solicitação, URl do referenciador, etc.
  2. O AWS adiciona dados adicionais a um envelope de evento quando ele passa de um serviço para outro (por exemplo, carimbo de data/hora quando o evento foi entregue ao SQS).
  3. Cabeçalho padrão JWT, esses dados são adicionados quando assinamos cada evento.

Diferença entre HTTPS e AWS SQS

Os eventos entregues pelo endpoint HTTPS têm algumas propriedades adicionais. Quando os eventos entregues do AWS SQS são coletados por meio de uma função lambda da AWS, há uma oportunidade de gravar os eventos em lotes - até 10 mensagens de evento de uma vez. Isso resulta em arquivos com até 10 mensagens de evento, em comparação com os arquivos de eventos entregues por meio do endpoint HTTPS, o que resultará em um arquivo por evento. Em outras palavras, para o mesmo conjunto de eventos, a pasta do endpoint HTTPS terá 10 vezes mais arquivos do que a pasta que contém os dados recuperados por meio da fila SQS.