O Canvas Data Services oferece duas opções para entrega de dados, ambas implantadas para receber o mesmo conjunto de eventos ao vivo do Canvas: endpoint HTTPS e fila AWS SQS. Tanto o HTTPS quanto o AWS SQS podem ser executados simultaneamente.
Este artigo aborda como configurar e testar a entrega HTTPS no Canvas Live Events. Para saber mais sobre a entrega via SQS, consulte nosso guia sobre como criar uma fila SQS na Amazon Web Services para receber dados do Live Events do Canvas .
Notas:
- Os dados de eventos ao vivo são processados na mesma região da instância do Canvas da qual são emitidos.
- Os serviços de dados e eventos ao vivo funcionam apenas em ambientes de produção e beta.
Detalhes da configuração
Você pode implementar uma Função do Google Cloud para receber eventos do Canvas e armazená-los em um bucket do Google Cloud Storage.
Os seguintes passos são necessários para processar mensagens de eventos ao vivo do Canvas recebidas através do endpoint HTTPS:
- As cargas úteis JWT assinadas devem ser definidas como Ativadas.
- A mensagem do evento, uma vez recebida pela Função do Google Cloud, deve ser decodificada usando RS256.
- Após decodificada, a assinatura JWT conterá uma propriedade `kid` . Essa propriedade deve ser comparada com um dos valores `kid` obtidos neste URL público: https://8axpcl50e4.execute-api.us-east-1.amazonaws.com/main/jwks
- Transforme a carga útil e armazene o evento resultante. Em outras palavras, não armazene mensagens assinadas e codificadas por muito tempo, pois os valores dos kid eventualmente expirarão. A AWS rotaciona as chaves uma vez por mês, no dia 30. O kid mais recente é o do meio.
Além disso, existem três tipos de cabeçalhos quando o Canvas gera um evento:
- Cabeçalho da Requisição: Este cabeçalho aparece quando um evento é acionado no Canvas (presumindo que o evento foi gerado com base em uma requisição). O sistema coloca os dados da requisição em um objeto de metadados do evento (por exemplo, método, request_id, referrer_URL).
- Cabeçalho de envelope da AWS: A AWS adiciona dados a um envelope de evento à medida que ele passa entre os serviços (por exemplo, um registro de data e hora quando um evento é entregue ao SQS).
- Cabeçalho padrão JWT: O sistema adiciona um cabeçalho padrão JWT ao assinar cada evento.
Diferença entre HTTPS e AWS SQS
Os eventos entregues pelo endpoint HTTPS possuem algumas propriedades adicionais. Quando os eventos entregues pelo AWS SQS são coletados por meio de uma função AWS Lambda, existe a possibilidade de gravá-los em lotes — até 10 mensagens de evento por vez. Isso resulta em arquivos com até 10 mensagens de evento, em comparação com os arquivos para eventos entregues pelo endpoint HTTPS, que terão 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 contendo os dados recuperados pela fila do SQS.