Este tópico responde a perguntas comuns sobre notificações de eventos.
Perguntas comuns
Como obter URLs de reprodução HTTPS nos callbacks?
O ApsaraVideo VOD não retorna URLs HTTPS em callbacks HTTP ou do Simple Message Queue (anteriormente MNS). Para obter URLs de reprodução HTTPS nos callbacks, siga estas etapas:
-
Configure um certificado SSL para o nome de domínio.
Ignore esta etapa se já tiver configurado um certificado SSL para o nome de domínio. Para mais informações sobre como configurar um certificado SSL, consulte Ativar aceleração segura HTTPS.
-
No código usado para receber callbacks, substitua a URL de reprodução HTTP pela URL de reprodução HTTPS.
Por exemplo, em Java, use o método
replace.
Como especificar várias URLs de callback?
Ao configurar callbacks pelo console do ApsaraVideo VOD, pelo SDK ou chamando a operação SetMessageCallback, as definições têm efeito global e apenas uma URL de callback fica disponível. Caso precise especificar múltiplas URLs de callback, utilize um dos métodos abaixo:
-
Método 1: Especifique um endereço de webhook em
UserDataAo chamar uma API para enviar ativos de mídia ou iniciar tarefas do ApsaraVideo Media Processing, como as operações Get Audio/Video Upload URL and Credentials e Submit Media Transcoding Jobs, especifique outros endereços de callback usando o campo MessageCallback no parâmetro de solicitação
UserData. Para mais informações, consulte Definir vários endereços de callback.NotaEste método oferece suporte apenas a callbacks HTTP.
Ative as notificações de eventos globais e configure os eventos relacionados para que as definições de callback HTTP tenham efeito.
-
Método 2: Defina uma URL de callback para cada aplicativo
Use o recurso de multiaplicativos para definir um método de callback e um endereço de webhook independentes para cada aplicativo. Para mais informações, consulte Guia do console de multiaplicativos.
Perguntas frequentes sobre callbacks HTTP
Como solucionar falhas no recebimento de callbacks HTTP?
Faça login no console do ApsaraVideo VOD. No painel de navegação à esquerda, escolha Configuration Management > Media Processing > Callback Settings. Verifique se o recurso de callback está ativado e se você assinou os callbacks necessários.
-
Execute o exemplo abaixo para verificar se uma resposta válida é retornada. Caso contrário, inspecione o serviço receptor de callbacks em busca de problemas. Substitua
http://example.aliyundoc.com/processMessagepelo seu endereço de webhook HTTP configurado.curl -l -i -H "Content-type: application/json" -X POST -d '{"VideoId":"videoId","EventType":"FileUploadComplete","Status":"success","Size":1439213}' http://example.aliyundoc.com/processMessage
Qual é o tempo limite de uma solicitação de callback HTTP? Quantas vezes o ApsaraVideo VOD reenvia a solicitação em caso de falha? Qual é o intervalo entre novas tentativas?
Por padrão, uma solicitação de callback HTTP expira se nenhuma resposta for retornada em 5 segundos. Em caso de falha, o ApsaraVideo VOD reenvia a solicitação de callback até três vezes, com intervalo de 1 segundo.
A solicitação de callback HTTP é descartada após atingir o limite de tentativas? Como evitar a perda de mensagens?
Se o serviço receptor apresentar problemas como travamentos, reinicializações ou indisponibilidade de rede, as mensagens serão descartadas quando o limite de tentativas for excedido. Para evitar perda de mensagens, recomendamos o uso de callbacks MNS.
O código de status HTTP 302 é suportado em callbacks HTTP?
O método de callback HTTP suporta apenas o código de status HTTP 200. Outros códigos, como 301 e 302, não são suportados por motivos de segurança.
Por que meu servidor recebe a mesma solicitação de callback HTTP várias vezes?
Um callback HTTP só é considerado bem-sucedido quando retorna o código de status HTTP 200. Se qualquer outro código for retornado ou se ocorrer timeout, o callback falha e o ApsaraVideo VOD tenta reenviar a solicitação até três vezes.
O que é autenticação HTTP?
Na autenticação HTTP, o ApsaraVideo VOD permite adicionar um cabeçalho de assinatura específico às solicitações de callback HTTP. O servidor que recebe as mensagens verifica essa assinatura para bloquear solicitações não autorizadas vindas de fontes externas ao ApsaraVideo VOD. A ativação da autenticação HTTP é opcional.
Perguntas frequentes sobre callbacks SMQ
Por que não há mensagens na fila de callbacks do Simple Message Queue (anteriormente MNS)?
A entrega de mensagens falha se o serviço de vídeo sob demanda não tiver permissão para acessar o Simple Message Queue (anteriormente MNS), se o endpoint não for público ou se o nome da fila estiver incorreto.
Caso o tempo de vida (TTL) da mensagem de callback seja muito curto, ela pode ser liberada antes do consumo. Recomendamos definir o TTL como 3.600 segundos.
Se o tamanho máximo da mensagem estiver definido abaixo do padrão recomendado de 65.536 bytes, a entrega poderá falhar.
Por que recebo a mesma mensagem várias vezes?
Após ser consumida, a mensagem permanece invisível por um curto período. Exclua-a manualmente ou por meio de uma operação de API. Caso contrário, ela poderá ser consumida novamente após esse intervalo.
O método de callback SMQ suporta autenticação?
O serviço de vídeo sob demanda possui alta segurança, pois exige autorização para gravar nas filas do usuário e não concede outras permissões operacionais. Portanto, geralmente não é necessária autenticação.
Em quais regiões o método de callback SMQ está disponível?
Para vídeos armazenados em regiões da China continental, como China (Beijing) e China (Shanghai), pode ocorrer um pequeno atraso na entrega de mensagens para filas fora da região China (Shanghai). Recomendamos utilizar uma fila na região China (Shanghai).
Se os vídeos estiverem armazenados na região de Singapura, utilize uma fila de mensagens nessa mesma região.
Para vídeos armazenados na região de Frankfurt, utilize uma fila de mensagens nessa mesma região.
Posso usar uma fila SMQ para callbacks entre regiões diferentes?
Sim. Por exemplo, é possível armazenar e processar vídeos na região China (Shanghai) ou China (Beijing) e enviar mensagens de callback para uma fila do Simple Message Queue (anteriormente MNS) na região China (Shenzhen). No entanto, a latência de rede pode atrasar a entrega das mensagens. Por isso, recomendamos enviar as mensagens para uma fila SMQ na mesma região onde os vídeos estão armazenados.