Tarefa de HTTP
Durante a execução do seu plano, você pode criar uma tarefa para enviar solicitações HTTP a um ponto de extremidade de aplicativo de terceiros. Por exemplo, quando uma tarefa anterior é executada com sucesso, você pode enviar uma mensagem HTTP para um ponto de extremidade designado com informações sobre essa tarefa.
Em "Exibição do plano", você pode criar tarefas HTTP para enviar uma solicitação para pontos de extremidade antes ou depois da execução de outras tarefas. Além disso, você pode usar a tarefa HTTP para gerar um conjunto de dados com resposta de chamada de API que pode ser usado no fluxo de trabalho do Designer Cloud. Essas tarefas são especificadas no painel de contexto direito.
Uma tarefa HTTP é uma solicitação entre o Alteryx One Platform e outro aplicativo. Essas solicitações são entregues usando HTTP e podem ser interpretadas pelo aplicativo de recebimento para realizar uma ação.
Nota
Seu aplicativo de recebimento pode exigir que você inclua o número de porta e host ou o endereço IP da plataforma na lista de permissões. Consulte a documentação do seu aplicativo.
Uma tarefa HTTP é um dos tipos de tarefa disponíveis em um plano. Para obter mais informações, vá para Página "Exibição do plano".
Limitações
Para o conjunto de dados de entrada (Carregar configuração a partir do conjunto de dados):
Linhas: 10.000.
Tamanho do arquivo: 1 GB.
Tamanho da linha: 100 MB.
As solicitações baseadas em HTTP têm um tempo limite de 30 segundos.
Certificados de segurança personalizados não podem ser usados.
Pré-requisitos
Requisitos para o aplicativo de recebimento
Para enviar uma solicitação HTTP a um aplicativo de destino, este aplicativo deve estar configurado para receber a solicitação:
Solicitações de fora do domínio do aplicativo devem estar habilitadas.
Nota
Seu aplicativo de recebimento pode exigir que você inclua o número de porta e host ou o endereço IP da plataforma na lista de permissões. Consulte a documentação do seu aplicativo.
É necessário adquirir o URL do ponto de extremidade para o qual enviar a solicitação HTTP.
É necessário adquirir todos os cabeçalhos HTTP que devem ser inseridos com cada solicitação HTTP.
Se o pedido tiver de ser assinado, é necessária configuração adicional. Os detalhes estão abaixo.
Criar tarefa
Arraste e solte a tarefa HTTP do painel esquerdo para a tela do plano.
No painel direito, selecione Tarefa HTTP. O painel de tarefas HTTP é exibido.

Figura: tarefa HTTP
Campo | Descrição |
|---|---|
Método | Selecione o método HTTP a ser usado para entregar a mensagem. O método apropriado depende do aplicativo de recebimento. A maioria dos casos de uso requer o método |
URL | URL em que a solicitação HTTP é recebida pelo outro aplicativo. |
Cabeçalhos | Insira cabeçalhos de conteúdo HTTP como pares chave-valor. Por exemplo, se o corpo estiver no formato JSON, você deve incluir o seguinte cabeçalho: key: Content-Type value: application/json Nota Pode ser necessário que você envie um token de autenticação como o valor para a chave de |
Corpo | (Somente métodos {"text":"My text message to the receiving application."}Dica Como parte dos campos de corpo ou cabeçalho da solicitação, você pode inserir referências de metadados para a definição do plano, execução atual, tarefas já executadas na execução e dados de coluna e fontes de dados. Para obter mais informações sobre os metadados disponíveis, consulte Referências de metadados do plano. |
Chave secreta | (Opcional) Uma chave secreta pode ser usada para verificar o payload da solicitação. Esse valor secreto deve ser inserido neste local e deve ser incluído como parte do código usado para processar as solicitações no aplicativo de recebimento. Insira o valor secreto aqui como uma cadeia de caracteres sem aspas. |
Validar Certificado SSL | Quando definido como Nota Se você precisar enviar uma solicitação para um ponto de extremidade que tenha um certificado expirado/inválido, será necessário desabilitar a verificação SSL. |
Tentar novamente | Se o código do status retornado estiver fora do intervalo 200-299, a tarefa HTTP será considerada como tendo falhado. Quando essa opção está habilitada, a solicitação é tentada novamente. Se a solicitação falhar, esse valor define o número de vezes que a solicitação deverá ser tentada novamente. Se esse número de tentativas for atingido sem sucesso, a tarefa falhará. |
Criar conjunto de dados a partir da resposta | Quando definido como |
Configurar tarefa
Defina os parâmetros obrigatórios. Para obter mais informações sobre parâmetros, vá para Exibição do plano para tarefas HTTP.
Você pode especificar informações de metadados do plano nos valores de cabeçalho e no corpo da solicitação. Para obter mais informações, vá para Referências de metadados do plano.
Para testar a conexão, clique em Testar. Uma mensagem de sucesso é exibida.
Dica
Um código de status
200indica que o teste foi bem-sucedido.Dica
Você pode usar o método GET para fins de teste. Uma solicitação GET não altera nenhum dado na plataforma de destino, mas pode permitir que você especifique elementos no corpo da solicitação.
Para adicionar a tarefa, clique em Salvar.
Renomear tarefa
Para renomear a tarefa, clique no menu "Mais" > Editar no painel direito.
Dica
Uma boa nomenclatura pode incluir o ponto de extremidade e o método da plataforma de destino, bem como os propósitos da tarefa em seu plano.
Excluir tarefa
Para excluir a tarefa, clique no menu "Mais" > Excluir. Confirme que deseja excluir a tarefa.
Atenção
Essa etapa não pode ser desfeita.
Referências de metadados do plano
Dentro da mensagem de suas outras tarefas, você pode referenciar metadados sobre o plano, suas tarefas e sua execução. Para obter mais informações, vá para Referências de metadados do plano.
Exemplos
Mensagem do canal do Slack
Dica
As tarefas do Slack agora são um recurso com suporte do produto.
Você pode criar uma tarefa HTTP para entregar uma mensagem de texto a um canal do Slack de sua escolha.
Configure sua instalação do Slack para receber mensagens HTTP:
Se necessário, crie um canal do Slack para receber suas mensagens.
Crie um aplicativo.
Ative mensagens HTTP de entrada para o seu aplicativo.
Especifique o canal para receber as mensagens de entrada.
Copie o URL para a solicitação HTTP de entrada a partir da instrução cURL.
Parâmetro | Descrição |
|---|---|
Nome | Este nome aparece apenas no Alteryx One. |
Método | Selecione o método |
URL | Cole o URL que você copiou do Slack. |
Cabeçalhos | Copie os cabeçalhos de conteúdo do comando do cURL do Slack: key: Content-Type value: application/json |
Corpo | {"text":"Your job has completed."} |
Clique em Testar para validar que essa tarefa funcionará.
Execute um trabalho e verifique se há uma mensagem no canal do Slack.
Exemplos de metadados do plano
Você pode referenciar informações de metadados da definição do plano e da execução atual do plano como parte da solicitação de sua tarefa HTTP.
Observações:
Só é possível inserir referências de metadados para tarefas que já ocorreram na execução do plano antes do início da tarefa HTTP.
Cada tarefa na execução atual é referenciada usando um código de duas letras. Exemplo:
{{$http_xx.name}}
A referência de metadados de um plano é construída usando a seguinte sintaxe. Na caixa de texto apropriada, insira um dos seguintes valores:
Dica
Comece digitando $, que fornece acesso a uma árvore de referências para cada um dos tipos de referência de metadados. A sintaxe final está anotada acima.
Planos:
Informações de metadados da definição do plano ou da execução atual do plano:
{{$planO corpo de solicitação a seguir contém referências ao nome do plano, ao identificador de execução do plano e ao fluxo que acabou de ser executado:
{"text":"Plan: {{$plan.name}}
RunId: {{$plan.runId}}
Flow: {{$flow_7p.name}}
Success."}O corpo de solicitação a seguir contém informações de execução do plano usando carimbos de data/hora:
{"text":"Plan: {{$plan.name}}
RunId: {{$plan.runId}}
- plan start: {{$plan.startTime}}
Running time: {{$plan.duration}}
Times:
- last task start: {{$flow_7p.startTime}}
- last task end: {{$flow_7p.endTime}}
"}Você pode referenciar informações de uma tarefa HTTP que já ocorreu:
{"text":"{{$http_qg.name}} returned {{$http_qg.statusCode}}."} Para obter mais informações, consulte Referências de metadados do plano.
Alimentar entradas de metadados para a função de nuvem
Este exemplo demonstra como você pode usar uma tarefa HTTP para entregar metadados de plano para funções do AWS Lambda. Uma abordagem semelhante pode ser usada para funções do Google Cloud.
Neste caso, o valor de rowCount da execução da tarefa de fluxo é entregue por meio de uma tarefa HTTP para uma função do AWS Lambda.
Passos gerais:
Defina o seu plano.
Tarefa de fluxo: execute o fluxo para gerar as saídas necessárias para a sua função do Lambda.
Tarefa HTTP: gera uma solicitação HTTP cujo corpo inclui uma referência à variável de metadados rowCount. Corpo da solicitação:
{ "rowCount": "{{$flow_7p['My Flow Name'].output['My output name'].rowCount}}" }Funções do AWS Lambda: o seguinte é pseudocódigo para o Lambda:
import json def lambda_handler(event, context): httpTaskBody = json.loads(event["body"]) rowCount = httpTaskBody["rowCount"] return { 'statusCode': 200, 'body': json.dumps(rowCount) }Funções do Google Cloud: o seguinte é pseudocódigo para funções do Google Cloud:
def get_row_count(request): request_json = request.get_json() if request_json and 'rowCount' in request_json: rowCount = request_json['rowCount'] return rowCount return 'No rowCount attribute provided'
Crie um conjunto de dados com resposta da API para o fluxo de trabalho do Designer Cloud
Use a tarefa HTTP no Plans para ler e produzir conjuntos de dados com respostas de chamada de API que podem ser usadas naturalmente no fluxo de trabalho do Designer Cloud.
Parâmetro | Descrição |
|---|---|
Nome | Este nome aparece apenas no Alteryx One. |
Método | Campo obrigatório. Selecione o método |
URL | Campo obrigatório. URL em que a solicitação HTTP é recebida pelo outro aplicativo. Exemplo: |
Cabeçalhos | Cabeçalhos de conteúdo HTTP como pares chave-valor em um formato JSON. {
"X-Custom-Header": "value",
"X-Parametrized-Header": "${wf1.id}"
} |
Corpo | O corpo da solicitação enviada para o aplicativo de recebimento. Pode conter {"text":"My text message to the receiving application."} |
Passos gerais:
Crie um fluxo de trabalho com sua entrada.
Crie e execute um plano com uma tarefa HTTP para gerar um conjunto de dados.
Certifique-se de desmarcar a caixa de seleção Excluir conjunto de dados com resposta de chamada de API, definindo a tarefa para manter o conjunto de dados.
No Designer Cloud, use o conjunto de dados gerado no passo anterior para criar um fluxo de trabalho começando com a resposta da API.
Ao marcar a caixa de seleção Carregar configuração a partir do conjunto de dados, você consegue carregar uma configuração (com todos os parâmetros) do conjunto de dados de saída da tarefa de fluxo de trabalho em etapas anteriores.
Cuidado
Consulte a seção Limitações para obter os limites do conjunto de dados de entrada.
Em Plano, adicione o fluxo de trabalho como uma tarefa em etapas posteriores de uma tarefa HTTP já existente. Modifique o plano para usar a saída da tarefa HTTP (especificada no Passo 1) como a entrada do fluxo de trabalho do Designer Cloud.
Você pode agendar o plano agora. Essa configuração faz uma chamada de API, a resposta é passada para o fluxo de trabalho do Designer Cloud e é executada. A saída final fica disponível como de costume.
Verificar assinaturas
Atenção
Dependendo do aplicativo de destino, implementar a verificação de assinaturas pode exigir habilidades de desenvolvedor.
Opcionalmente, você pode configurar a plataforma para assinar as solicitações HTTP. Solicitações assinadas garantem que as solicitações são enviadas a partir plataforma, em vez de terceiros.
Abaixo, você pode revisar como a assinatura é criada, para que você possa configurar o aplicativo de recebimento a fim de processar corretamente a assinatura e a solicitação relacionada.
Cabeçalho da assinatura
As solicitações HTTP são assinadas inserindo o cabeçalho X-Webhook-Signature na solicitação. Essas assinaturas estão na seguinte forma:
X-Webhook-Signature: t=<timestamp>,sha256=<signature>
onde:
<timestamp>: carimbo de data/hora em que a assinatura foi enviada. O valor está na era UNIX.<signature>: assinatura SHA256. A plataforma gera essa assinatura usando um código de autenticação de mensagem baseado em hash (HMAC) com SHA-256.
Mais informações sobre esses valores estão disponíveis abaixo.
Exemplo:
X-Webhook-Signature: t=1568818215724,sha256=55fa71b2e391cd3ccba8413fb51ad16984a38edb3cccfe81f381c4b8197ee07a
Verificar as ferramentas do aplicativo
Dependendo do aplicativo, talvez seja necessário concluir um dos seguintes conjuntos de tarefas para verificar as assinaturas:
Nota
Pode ser que você precise colocar a plataforma na lista de permissões em seu aplicativo. Consulte a documentação do aplicativo para obter detalhes.
Pode ser necessário criar algum código personalizado para o seu aplicativo. Abaixo, você pode revisar detalhes sobre como fazer isso, incluindo um exemplo de JavaScript.
Processar solicitações assinadas
O valor de carimbo de data/hora (t=<timestamp>) aparece no início do valor do cabeçalho para evitar ataques de repetição, onde um invasor pode interceptar um payload válido e sua assinatura e retransmiti-los.
Para evitar esses ataques, um carimbo de data/hora é incluído no cabeçalho da assinatura e integrado no payload assinado.
Como o carimbo de data/hora faz parte do payload assinado, um invasor não pode alterar o valor do carimbo de data/hora sem invalidar a assinatura.
Se a assinatura for válida, mas o carimbo de data/hora for muito antigo, você pode rejeitar a solicitação.
Por exemplo, se você receber uma solicitação com um carimbo de data/hora que corresponde a uma hora atrás, provavelmente deverá rejeitar a solicitação.
Para obter mais informações sobre ataques de repetição, acesse https://en.wikipedia.org/wiki/Replay_attack.
A assinatura da tarefa inclui como parte de seu valor hash:
A chave secreta (inserida acima)
O valor do carimbo de data/hora
Dados da solicitação:
(POST/PUT/PATCH) – o corpo da solicitação
(GET/DELETE) – URL da solicitação
Divida o cabeçalho X-Webhook-Signature:
Divida os valores usando o caractere "," como separador.
Divida cada uma das partes usando o caractere "=".
Extraia os valores para o carimbo de data/hora e a assinatura. A partir do exemplo acima:
carimbo de data/hora:
1568818215724assinatura:
55fa71b2e391cd3ccba8413fb51ad16984a38edb3cccfe81f381c4b8197ee07a
No aplicativo de recebimento, você pode calcular novamente a assinatura para verificar se a solicitação foi enviada a partir da plataforma.
Concatene o carimbo de data/hora, o caractere de ponto . e o corpo da solicitação (métodos POST/PUT/PATCH) ou o URL (métodos GET/DELETE).
Suponha que o exemplo acima seja a assinatura para uma solicitação
POSTe que o corpo da solicitação sejatest. O valor concatenado é o seguinte:1568818215724.test
Agora você pode calcular o código de autenticação HMAC no seu aplicativo de recebimento. No exemplo JavaScript a seguir, o valor da chave secreta é
mySecret:const crypto = require('crypto'); const message = '1568818215724.test'; // as defined above const hmac = crypto.createHmac('sha256', 'mySecret'); hmac.update(message) const expectedSignature = hmac.digest('hex');
O valor retornado pelo seu código e o valor incluído como a assinatura no cabeçalho X-Webhook-Signature devem ser comparados:
Se os valores não corresponderem, rejeite a solicitação.
Se os valores corresponderem, calcule a diferença entre o carimbo de data/hora atual e o carimbo de data/hora no cabeçalho. Se a diferença estiver fora do limite permitido, rejeite a solicitação.
Caso contrário, processe a solicitação normalmente em seu aplicativo.
Carregar configuração HTTP a partir do conjunto de dados
Caso você precise criar uma solicitação de API dinâmica ou várias solicitações, você pode usar o Designer Cloud para definir uma saída com a configuração e passar essa saída para a tarefa HTTP no Plans.
Para definir uma saída com a configuração e usá-la para a tarefa HTTP, siga estes passos:
Crie um fluxo de trabalho no Designer Cloud. Para obter mais informações, acesse Criar fluxos de trabalho.
No fluxo de trabalho, defina o formato de arquivo de saída como um CSV que contenha as seguintes colunas (os nomes não diferenciam maiúsculas de minúsculas):
Método (cadeia de caracteres, valores: GET | POST | DELETE | PUT),
URL (cadeia de caracteres, o URL da solicitação),
Cabeçalhos (cadeia de caracteres, a lista de cabeçalhos com valores em um formato {"Name":"Value", "Name":"Value", ...}),
Corpo (cadeia de caracteres).
Vá para Plans e crie um plano.
Adicione uma tarefa do Designer Cloud e selecione o fluxo de trabalho recém-criado.
Adicione uma tarefa HTTP após a tarefa do Designer Cloud e conecte-a com uma linha de conector.
Na configuração HTTP, marque a caixa de seleção Carregar configuração a partir do conjunto de dados e a caixa de seleção Carregar configuração a partir do conjunto de dados.
Clique no botão Selecionar conjunto de dados de entrada.
Escolha a tarefa do Designer Cloud e seus dados de saída com a configuração HTTP.
Selecione Confirmar.
A caixa de seleção Criar conjunto de dados a partir da resposta será marcada automaticamente. Você pode personalizar o nome do conjunto de dados e executar o plano.
Nota
Cada linha no arquivo de saída de configuração leva a uma solicitação separada. A resposta de cada solicitação será adicionada como uma linha no conjunto de dados de saída.
Usar a resposta HTTP como entrada para a tarefa em etapas posteriores
Depois de definir a tarefa HTTP para criar um conjunto de dados a partir de uma resposta, você pode usar esse conjunto de dados como uma entrada para tarefas em etapas posteriores.
Para usar o conjunto de dados como uma entrada para uma tarefa em etapas posteriores, siga estes passos:
Em "Configuração HTTP", marque a caixa de seleção Criar conjunto de dados a partir da resposta.
Adicione uma tarefa do Designer Cloud após a tarefa HTTP e conecte-a com uma linha de conector.
Na tarefa do Designer Cloud, selecione o fluxo de trabalho desejado.
Na lista de entradas fluxo de trabalho, selecione Substituir na entrada que você deseja substituir pela resposta HTTP.
Selecione a tarefa HTTP e sua saída.
Clique em Confirmar e execute o plano.