Defina a configuração de retransmissão de stream na borda.
Descrição da operação
Chame a operação SetLiveEdgeTransfer para configurar a retransmissão de stream na borda. A configuração aplica-se apenas a streams ingeridos após a ativação do recurso. A tabela a seguir descreve os cenários em que a retransmissão entra ou não em vigor.
|
Cenário |
Análise |
Resultado |
|
1. Ingestão de um stream antes da chamada à operação SetLiveEdgeTransfer. |
A configuração de retransmissão ainda não está disponível. |
A chamada à operação SetLiveEdgeTransfer não afeta o stream já ingerido. A retransmissão na borda não entra em vigor. |
|
2. Desconexão e posterior retomada de um stream iniciado antes da chamada à operação SetLiveEdgeTransfer. |
A configuração de retransmissão já está disponível. |
A retransmissão na borda passa a valer para o stream retomado, conforme a configuração definida. |
|
3. Ingestão de um stream após a chamada à operação SetLiveEdgeTransfer. |
A configuração de retransmissão já está disponível. |
A retransmissão na borda entra em vigor para o novo stream ingerido com base na configuração. |
Limite de QPS
É possível chamar esta operação até 100 vezes por segundo por conta. Solicitações que excedem esse limite são descartadas, o que pode causar interrupções no serviço. Recomendamos considerar esse limiar ao executar esta operação.
Depuração
Informações de autorização
A tabela a seguir apresenta as informações de autorização correspondentes à API. Use essas informações no elemento de política Action para conceder a um usuário RAM ou função RAM as permissões necessárias para chamar esta operação da API. Descrição:
Operação: valor usado no elemento Action para especificar a ação sobre um recurso.
Nível de acesso: nível de acesso de cada operação. Os níveis disponíveis são read, write e list.
-
Tipo de recurso: tipo de recurso no qual o usuário RAM ou a função RAM pode ser autorizado a executar a operação. Observe os seguintes pontos:
Tipos de recurso obrigatórios são indicados com o prefixo * .
Caso não seja possível conceder permissões no nível do recurso,
All Resourcesserá exibido na coluna Tipo de recurso da operação.
Chave de condição: chave de condição definida pelo serviço de nuvem.
Operação associada: outras operações que o usuário RAM ou a função RAM precisa ter permissão para executar a fim de concluir a operação principal. Para concluir a operação, o usuário RAM ou a função RAM deve possuir permissões para realizar as operações associadas.
| Operação | Nível de acesso | Tipo de recurso | Chave de condição | Operação associada |
|---|---|---|---|---|
| live:SetLiveEdgeTransfer | atualize | *All Resources * |
| nenhuma |
Parâmetros da requisição
| Parâmetro | Tipo | Obrigatório | Descrição | Exemplo |
|---|---|---|---|---|
| DomainName | string | Sim | O domínio de ingestão. A retransmissão de stream é configurada com base no domínio de ingestão. Apenas uma configuração de retransmissão de stream pode ser definida para um domínio de ingestão. | demo.aliyundoc.com |
| AppName | string | Não | Nome do aplicativo ao qual o stream ao vivo pertence. Expressões regulares são suportadas, com algumas limitações. Para mais informações, consulte a seção Descrição sobre os parâmetros AppName e StreamName. Por exemplo, o valor liveApp**[1,2,3] indica que a retransmissão de stream está configurada para três aplicativos: liveApp1, liveApp2 e liveApp3.** Nota
| liveApp**** |
| StreamName | string | Não | Nome do stream ingerido. Expressões regulares são suportadas, com algumas limitações. Para mais informações, consulte a seção Descrição sobre os parâmetros AppName e StreamName. Por exemplo, o valor liveStream**[1,2,3] indica que a retransmissão de stream está configurada para três streams: liveStream1, liveStream2 e liveStream3.** Nota
| liveStream**** |
| TargetDomainList | string | Não | Nomes de domínio de destino para os quais você deseja retransmitir o stream ingerido. Separe múltiplos nomes de domínio com vírgulas (,). A requisição deve conter o parâmetro Nota
| learn.aliyundoc.com,guide.aliyundoc.com |
| HttpDns | string | Não | API HTTPDNS usada para obter as URLs de destino. A requisição deve conter o parâmetro Nota
Se o parâmetro HttpDns estiver configurado, não será possível configurar o parâmetro TargetDomainList, e os parâmetros AppName e StreamName não terão efeito.
Para obter informações sobre os requisitos da estrutura das mensagens retornadas pela API HTTPDNS, consulte a seção Descrição sobre a API HTTPDNS. | http://developer.aliyundoc.com |
| TransferArgs | string | Não | Define se os parâmetros de ingestão de stream devem ser repassados. Valores válidos:
| yes |
Descrição dos parâmetros AppName e StreamName
Os parâmetros AppName e StreamName não aceitam acentos circunflexos (^) nem cifrões ($). A presença de um acento circunflexo (^) ou cifrão ($) nos valores desses parâmetros causa falha na retransmissão de stream.
Descrição da API HTTPDNS
Quando o parâmetro HttpDns está configurado, os nomes de domínio de destino são obtidos por meio do acesso à API HTTPDNS especificada nesse mesmo parâmetro.
Exemplo: http://developer.aliyundoc.com/?host={}&app={}&name={}{<_ali_user_args>} Observação: Durante o acesso à API HTTPDNS, os parâmetros abaixo são substituídos pelos valores reais presentes na URL de ingestão.
{}: O domínio de ingestão.
{}: O nome do aplicativo ao qual o stream ao vivo pertence.
{}: O nome do stream.
{<_ali_user_args>}: Os parâmetros personalizados incluídos na URL de ingestão.
A resposta retorna os seguintes códigos de status HTTP e resultados.
O código de status HTTP 403 indica falha no acesso à API HTTPDNS. Nesse caso, a retransmissão de stream não é necessária.
O código de status HTTP 200 confirma o acesso bem-sucedido à API HTTPDNS. O resultado retornado vem no formato JSON. O exemplo a seguir ilustra a estrutura da mensagem e seus parâmetros.
{
"cdn_types": [
{
"name": "cdnA****",
"upstream_url": "rtmp://developer.aliyundoc.com/live/testedge****"
},
{
"name": "cdnB****",
"upstream_url": "rtmp://developer.aliyundoc.com/live/testedge****"
}
]
}
|
Parâmetro |
Descrição |
Exemplo |
|
name |
Nome do ponto de presença (POP) da CDN. É possível definir um nome personalizado, mas nomes duplicados não são permitidos. |
cdnA**** |
|
upstream_url |
URL de destino para onde o stream ingerido será retransmitido. |
rtmp://developer.aliyundoc.com/live/testedge**** |
Observação: O nome de domínio de destino pode ser extraído diretamente do resultado em formato JSON. Caso múltiplos domínios de destino sejam retornados, o stream ingerido será retransmitido para todos eles.
Se a estrutura dos dados retornados não atender aos requisitos, a retransmissão de stream falhará.
Parâmetros de resposta
|
Parâmetro |
Tipo |
Descrição |
Exemplo |
|
object |
|||
|
RequestId |
string |
ID da solicitação. |
16A96B9A-F203-4EC5-8E43-CB92E68F4CF8 |
Exemplos
Exemplos de respostas de sucesso
Formato JSON
{
"RequestId": "16A96B9A-F203-4EC5-8E43-CB92E68F4CF8"
}
Códigos de erro
|
Código de status HTTP |
Código de erro |
Mensagem de erro |
Descrição |
|
400 |
InvalidParam |
Parameter invalid. |
Parâmetros de entrada inválidos |
|
500 |
InternalError |
The request processing has failed due to backend service exception. |
- |
Para obter a lista completa de códigos de erro, consulte os Códigos de erro do serviço.