Atividade do Webhook no Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Uma atividade de webhook pode controlar a execução de pipelines através de código personalizado. Com a atividade do webhook, o código pode chamar um ponto de extremidade e passar uma URL de retorno de chamada. A execução do pipeline aguarda a invocação de retorno de chamada antes de prosseguir para a próxima atividade.

Importante

A atividade do WebHook agora permite que você apresente o status do erro e as mensagens personalizadas de volta à atividade e ao pipeline. Defina reportStatusOnCallBack como true e inclua StatusCode e Error na carga de retorno de chamada. Para obter mais informações, consulte a seção Notas adicionais.

Criar uma atividade Webhook com a interface do usuário

Para usar uma atividade Webhook em um pipeline, conclua as seguintes etapas:

  1. Procure Webhook no painel Atividades do pipeline e arraste uma atividade Webhook para a tela do pipeline.

  2. Selecione a nova atividade de webhook na tela, se ainda não estiver selecionada, e sua guia Configurações , para editar seus detalhes.

    Shows the UI for a Webhook activity.

  3. Especifique uma URL para o webhook, que pode ser uma cadeia de caracteres de URL literal ou qualquer combinação de expressões dinâmicas , funções, variáveis do sistema ou saídas de outras atividades. Forneça outros detalhes a serem apresentados com o pedido.

  4. Use a saída da atividade como entrada para qualquer outra atividade e faça referência à saída em qualquer lugar em que o conteúdo dinâmico seja suportado na atividade de destino.

Sintaxe


{
    "name": "MyWebHookActivity",
    "type": "WebHook",
    "typeProperties": {
        "method": "POST",
        "url": "<URLEndpoint>",
        "headers": {
            "Content-Type": "application/json"
        },
        "body": {
            "key": "value"
        },
        "timeout": "00:10:00",
        "reportStatusOnCallBack": false,
        "authentication": {
            "type": "ClientCertificate",
            "pfx": "****",
            "password": "****"
        }
    }
}

Propriedades do tipo

Propriedade Description Valores permitidos Necessário
Designação O nome da atividade do webhook. Cadeia (de carateres) Sim
tipo Deve ser definido como "WebHook". Cadeia (de carateres) Sim
método O método REST API para o ponto de extremidade de destino. String. O tipo suportado é "POST". Sim
URL O ponto de extremidade e o caminho de destino. Uma cadeia de caracteres ou uma expressão com o valor resultType de uma cadeia de caracteres. Sim
cabeçalhos Cabeçalhos que são enviados para a solicitação. Aqui está um exemplo que define o idioma e o tipo em uma solicitação: "headers" : { "Accept-Language": "en-us", "Content-Type": "application/json" }. Uma cadeia de caracteres ou uma expressão com o valor resultType de uma cadeia de caracteres. Sim. É necessário um Content-Type cabeçalho como "headers":{ "Content-Type":"application/json"} este.
corpo Representa a carga útil enviada para o ponto de extremidade. JSON válido ou uma expressão com o valor resultType de JSON. Consulte Esquema de carga útil de solicitação para obter o esquema da carga útil de solicitação. Sim
autenticação O método de autenticação usado para chamar o ponto de extremidade. Os tipos suportados são "Basic" e "ClientCertificate". Para obter mais informações, veja Autenticação. Se a autenticação não for necessária, exclua esta propriedade. Uma cadeia de caracteres ou uma expressão com o valor resultType de uma cadeia de caracteres. Não
tempo limite Quanto tempo a atividade aguarda para que o retorno de chamada especificado por callBackUri seja invocado. O valor padrão é 10 minutos ("00:10:00"). Os valores têm o formato TimeSpan d.hh:mm:ss. String Não
Relatar status no retorno de chamada Permite que um usuário relate o status de falha de uma atividade de webhook. Booleano Não

Autenticação

Uma atividade de webhook suporta os seguintes tipos de autenticação.

Nenhuma

Se a autenticação não for necessária, não inclua a propriedade de autenticação .

Básica

Especifique o nome de usuário e a senha a serem usados com a autenticação básica.

"authentication":{
   "type":"Basic",
   "username":"****",
   "password":"****"
}

Certificado de cliente

Especifique o conteúdo codificado em Base64 de um arquivo PFX e uma senha.

"authentication":{
   "type":"ClientCertificate",
   "pfx":"****",
   "password":"****"
}

Identidade gerida

Use a identidade gerenciada para seu data factory ou espaço de trabalho Synapse para especificar o URI do recurso para o qual o token de acesso é solicitado. Para chamar a API de Gerenciamento de Recursos do Azure, use https://management.azure.com/. Para obter mais informações sobre como as identidades gerenciadas funcionam, consulte Visão geral das identidades gerenciadas para recursos do Azure.

"authentication": {
    "type": "MSI",
    "resource": "https://management.azure.com/"
}

Nota

Se o serviço estiver configurado com um repositório Git, você deverá armazenar suas credenciais no Cofre da Chave do Azure para usar a autenticação básica ou de certificado de cliente. O serviço não armazena senhas no Git.

Notas adicionais

O serviço passa a propriedade adicional callBackUri no corpo enviado para o ponto de extremidade URL. O serviço espera que esse URI seja invocado antes do valor de tempo limite especificado. Se o URI não for invocado, a atividade falhará com o status "TimedOut".

A atividade do webhook falha quando a chamada para o ponto de extremidade personalizado falha. Qualquer mensagem de erro pode ser adicionada ao corpo do retorno de chamada e usada em uma atividade posterior.

Para cada chamada à API REST, o cliente atinge o tempo limite se o ponto de extremidade não responder dentro de um minuto. Esse comportamento é a prática recomendada padrão de HTTP. Para corrigir esse problema, implemente um padrão 202. No caso atual, o ponto de extremidade retorna 202 (Aceito) e as pesquisas do cliente.

O tempo limite de um minuto na solicitação não tem nada a ver com o tempo limite da atividade. Este último é usado para aguardar o retorno de chamada especificado pelo callbackUri.

O corpo passado de volta para o URI de retorno de chamada deve ser JSON válido. Defina o Content-Type cabeçalho como application/json.

Ao usar a propriedade Status do relatório no retorno de chamada, você deve adicionar o seguinte código ao corpo ao fazer o retorno de chamada :

{
    "Output": {
        // output object is used in activity output
        "testProp": "testPropValue"
    },
    "Error": {
        // Optional, set it when you want to fail the activity
        "ErrorCode": "testErrorCode",
        "Message": "error message to show in activity error"
    },
    "StatusCode": "403" // when status code is >=400, activity is marked as failed
}

Consulte as seguintes atividades de fluxo de controle suportadas: