Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)
Este guia mostra como criar um fluxo de trabalho de lógica do aplicativo que pode receber e manipular uma solicitação HTTPS de entrada de outro serviço usando o trigger interno Solicitação. Quando o fluxo de trabalho usa esse gatilho, o fluxo de trabalho pode responder à chamada HTTPS usando a ação interna Resposta .
Nota
A ação Resposta funciona somente quando você usa o gatilho Solicitação .
Por exemplo, seu fluxo de trabalho pode executar as seguintes tarefas quando você usa o gatilho de solicitação e a ação de resposta :
Receba e responda a uma solicitação HTTPS de dados em um banco de dados local.
Receba e responda a uma solicitação HTTPS enviada de outro fluxo de trabalho de aplicativo lógico.
Acione uma execução de fluxo de trabalho quando um evento de webhook externo acontecer.
Para executar seu fluxo de trabalho enviando uma solicitação de saída ou de saída, use o gatilho interno HTTP ou a ação interna HTTP.
Pré-requisitos
- Uma conta e subscrição do Azure. Se não tiver uma subscrição, pode inscrever-se numa conta gratuita do Azure.
O recurso de aplicativo lógico com o fluxo de trabalho onde você deseja receber a solicitação HTTPS de entrada.
Para iniciar seu fluxo de trabalho com um gatilho de solicitação , você precisa ter um fluxo de trabalho em branco. Para usar a ação Resposta , seu fluxo de trabalho deve começar com o gatilho Solicitação .
Se você não tiver um recurso de aplicativo lógico e fluxo de trabalho, crie-os agora seguindo as etapas para o aplicativo lógico desejado:
Instale ou use uma ferramenta que possa enviar solicitações HTTP para testar sua solução, por exemplo:
- Código do Visual Studio com uma extensão do Visual Studio Marketplace
- PowerShell Invoke-RestMethod
- Microsoft Edge - Ferramenta Network Console
- Adriano
- ondulação
Atenção
Para cenários em que você tem dados confidenciais, como credenciais, segredos, tokens de acesso, chaves de API e outras informações semelhantes, certifique-se de usar uma ferramenta que proteja seus dados com os recursos de segurança necessários. A ferramenta deve funcionar offline ou localmente e não requer login em uma conta online ou sincronização de dados com a nuvem. Ao usar uma ferramenta com essas características, você reduz o risco de expor dados confidenciais ao público.
Adicionar um gatilho de solicitação
O gatilho Request cria um ponto de extremidade chamável manualmente que lida apenas com solicitações de entrada por HTTPS. Quando o chamador envia uma solicitação para esse ponto de extremidade, o gatilho Request é acionado e executa o fluxo de trabalho. Para obter informações sobre como chamar esse gatilho, consulte Chamar, disparar ou aninhar fluxos de trabalho com pontos de extremidade HTTPS nos Aplicativos Lógicos do Azure.
No portal Azure, abra o recurso da aplicação lógica de consumo.
No menu da barra lateral, em Ferramentas de Desenvolvimento, selecione o designer para abrir seu fluxo de trabalho em branco.
Adicione o gatilho interno de solicitação chamado Quando uma solicitação HTTP é recebida ao seu fluxo de trabalho seguindo as etapas gerais para adicionar um gatilho.
Depois que a caixa de informações do gatilho for exibida, forneça as seguintes informações:
Nome da propriedade Nome da propriedade JSON Necessário Descrição HTTP URL {nenhum} Sim A URL do ponto de extremidade que é gerada depois que você salva seu fluxo de trabalho e é usada para enviar uma solicitação que aciona seu fluxo de trabalho. Esquema JSON do corpo da solicitação schemaNão O esquema JSON que descreve as propriedades e os valores no corpo da solicitação de entrada. O designer usa esse esquema para gerar tokens para as propriedades na solicitação. Dessa forma, seu fluxo de trabalho pode analisar, consumir e passar saídas do gatilho Request para seu fluxo de trabalho.
Se você não tiver um esquema JSON, poderá gerar o esquema a partir de uma carga útil de exemplo usando o recurso Usar carga útil de exemplo para gerar esquema .O exemplo a seguir mostra um esquema JSON de exemplo:
O exemplo a seguir mostra o esquema JSON de exemplo completo:
{ "type": "object", "properties": { "account": { "type": "object", "properties": { "name": { "type": "string" }, "ID": { "type": "string" }, "address": { "type": "object", "properties": { "number": { "type": "string" }, "street": { "type": "string" }, "city": { "type": "string" }, "state": { "type": "string" }, "country": { "type": "string" }, "postalCode": { "type": "string" } } } } } } }Quando você insere um esquema JSON, o designer pode mostrar um lembrete para incluir o
Content-Typecabeçalho em sua solicitação e definir esse valor de cabeçalho comoapplication/json. Para obter mais informações, consulte Manipular tipos de conteúdo.O exemplo a seguir mostra como o
Content-Typecabeçalho aparece no formato JSON:{ "Content-Type": "application/json" }Para gerar um esquema JSON baseado na carga útil esperada (dados), você pode usar uma ferramenta como json-schema.org ou seguir estas etapas:
No gatilho Solicitação, selecione Usar carga útil de exemplo para gerar esquema.
Insira a carga útil da amostra e selecione Concluído.
O exemplo a seguir mostra a carga útil de exemplo:
{ "account": { "name": "Contoso", "ID": "12345", "address": { "number": "1234", "street": "Anywhere Street", "city": "AnyTown", "state": "AnyState", "country": "USA", "postalCode": "11111" } } }
Para verificar se a chamada de entrada tem um corpo de solicitação que corresponde ao esquema especificado, siga estas etapas:
Para impor que a mensagem de entrada tenha os mesmos campos exatos que o esquema descreve, no esquema, adicione a
requiredpropriedade e especifique os campos obrigatórios. Adicione aadditionalPropertiespropriedade e defina o valor como false.Por exemplo, o esquema a seguir especifica que a mensagem de entrada deve ter o
msgcampo e não quaisquer outros campos:{ "properties": { "msg": { "type": "string" } }, "type": "object", "required": ["msg"], "additionalProperties": false }No designer, selecione o gatilho Solicitação. No painel de informações que se abre, selecione a guia Configurações .
Expanda Tratamento de Dados e defina Validação de Esquema como Ativado.
Se o corpo da solicitação da chamada de entrada não corresponder ao seu esquema, o gatilho retornará um erro HTTP 400 Bad Request .
Na lista Método , selecione o método que o gatilho espera que as solicitações de entrada usem.
Se existirem outros parâmetros para o gatilho, abra a lista Parâmetros avançados e selecione os parâmetros desejados.
Quando estiver pronto, salve seu fluxo de trabalho. Na barra de ferramentas do estruturador, selecione Guardar.
Esta etapa gera a URL que você pode usar para enviar uma solicitação que aciona o fluxo de trabalho.
Para copiar o URL gerado, selecione o ícone de cópia ao lado do URL.
Nota
Se você quiser incluir o símbolo de hash ou libra (#) no URI ao fazer uma chamada para o gatilho Request , use esta versão codificada:
%25%23
Agora, continue criando seu fluxo de trabalho adicionando outra ação como próxima etapa. Por exemplo, você pode responder à solicitação adicionando uma ação Resposta, que pode ser usada para retornar uma resposta personalizada e descrita posteriormente neste artigo.
Nota
Seu fluxo de trabalho mantém uma solicitação de entrada aberta apenas por um tempo limitado. Supondo que seu fluxo de trabalho também inclua uma ação de Resposta, se o fluxo de trabalho não retornar uma resposta ao chamador depois que esse tempo expirar, seu fluxo de trabalho retornará o status 504 GATEWAY TIMEOUT para o chamador. Se o fluxo de trabalho não incluir uma ação Resposta, o fluxo de trabalho retornará imediatamente o status 202 ACEITO para o chamador.
Para obter informações sobre segurança, autenticação e criptografia para chamadas de entrada para seu fluxo de trabalho, como Transport Layer Security (TLS),OAuth com ID do Microsoft Entra, Assinaturas de Acesso Compartilhado (SAS), expondo seu recurso de aplicativo lógico com o Gerenciamento de API do Azure ou restringindo os endereços IP que originam chamadas de entrada, consulte Acesso para chamadas de entrada a gatilhos baseados em solicitação.
Saídas de gatilho
A tabela a seguir lista as saídas do gatilho Request:
| Nome da propriedade JSON | Tipo de dados | Descrição |
|---|---|---|
headers |
Objeto | Um objeto JSON que descreve os cabeçalhos da solicitação |
body |
Objeto | Um objeto JSON que descreve o conteúdo do corpo da solicitação |
Adicionar uma ação de resposta
Ao usar o gatilho Solicitação para receber solicitações de entrada, você pode modelar a resposta e enviar os resultados da carga útil de volta para o chamador usando a ação interna Resposta , que funciona apenas com o gatilho Solicitação . Essa combinação com o gatilho de solicitação e a ação de resposta cria o padrão solicitação-resposta. Exceto em ciclos Para cada e ciclos Until, e em ramificações paralelas, pode-se acrescentar a ação Resposta em qualquer parte do fluxo de trabalho.
Importante
Se sua ação de Resposta incluir os seguintes cabeçalhos, os Aplicativos Lógicos do Azure removerão automaticamente esses cabeçalhos da mensagem de resposta gerada sem mostrar nenhum aviso ou erro. Os Aplicativos Lógicos do Azure não incluem esses cabeçalhos, embora o serviço não impeça você de salvar fluxos de trabalho que tenham uma ação de Resposta com esses cabeçalhos.
Allow-
Content-*cabeçalhos exceto paraContent-Disposition,Content-EncodingeContent-Typequando se utilizam as operaçõesPOSTePUT, mas não estão incluídos para as operaçõesGET CookieExpiresLast-ModifiedSet-CookieTransfer-Encoding
Se você tiver uma ou mais ações de Resposta em um fluxo de trabalho complexo com ramificações, certifique-se de que o fluxo de trabalho processe pelo menos uma ação de Resposta durante o tempo de execução. Caso contrário, se todas as ações de resposta forem ignoradas, o chamador receberá um erro 502 Bad Gateway , mesmo que o fluxo de trabalho seja concluído com êxito.
Em um fluxo de trabalho sem estado do aplicativo lógico padrão, a ação Resposta deve aparecer em último lugar no fluxo de trabalho. Se a ação aparecer em qualquer outro lugar, os Aplicativos Lógicos do Azure ainda não executarão a ação até que todas as outras ações terminem de ser executadas.
No portal Azure, abra o recurso da aplicação lógica de consumo.
No menu da barra lateral, em Ferramentas de Desenvolvimento, selecione o designer para abrir o fluxo de trabalho.
Este fluxo de trabalho de exemplo usa o gatilho Request adicionado na seção anterior.
Adicione a ação interna Resposta ao seu fluxo de trabalho seguindo as etapas gerais para adicionar uma ação.
Na caixa de informações da ação, adicione os valores necessários para a mensagem de resposta.
Nome da propriedade Nome da propriedade JSON Necessário Descrição Código de Estado statusCodeSim O código de status a ser retornado na resposta Cabeçalhos headersNão Um objeto JSON que descreve um ou mais cabeçalhos a serem incluídos na resposta Corpo bodyNão O organismo de resposta Ao selecionar dentro de qualquer campo de texto, você obtém as opções para abrir a lista de conteúdo dinâmico (ícone relâmpago) ou o editor de expressões (ícone de função). Ao escolher a lista de conteúdo dinâmico, você pode selecionar saídas disponíveis em etapas anteriores do fluxo de trabalho. Se você especificou um esquema no gatilho Solicitação , as propriedades do esquema também aparecem na lista de conteúdo dinâmico e estão disponíveis para uso no fluxo de trabalho.
Por exemplo, no campo Cabeçalhos, use Content-Type como chave e defina o valor da chave como application/json, conforme mencionado anteriormente neste artigo. Para a caixa Corpo , você pode abrir a lista de conteúdo dinâmico e selecionar a saída do corpo do gatilho.
Para exibir os cabeçalhos no formato JSON, selecione Alternar para o modo de exibição de texto.
Se existirem outros parâmetros para a ação, abra a lista Parâmetros avançados e selecione os parâmetros desejados.
Quando tiver terminado, guarde o fluxo de trabalho. Na barra de ferramentas do estruturador, selecione Guardar.
Testar o fluxo de trabalho
Para acionar o seu processo de trabalho, envie uma solicitação HTTP para a URL gerada pelo gatilho de Solicitação, utilizando o método que o gatilho de Solicitação exige, usando a sua ferramenta de solicitação HTTP de acordo com as instruções dela.
Para obter mais informações sobre a definição JSON subjacente do gatilho e como chamá-lo, consulte estes artigos: Tipo de gatilho de solicitação e Fluxos de trabalho de chamada, gatilho ou aninhamento com pontos de extremidade HTTP nos Aplicativos Lógicos do Azure.
Segurança e autenticação
Em um fluxo de trabalho de aplicativo lógico padrão que começa com o gatilho de solicitação (mas não um gatilho de webhook), você pode usar a provisão do Azure Functions para autenticar chamadas de entrada enviadas para o ponto de extremidade criado por esse gatilho usando uma identidade gerenciada. Esta disposição também é conhecida como Easy Auth. Para obter mais informações, consulte Acionar fluxos de trabalho em aplicativos lógicos padrão com autenticação fácil.
Para obter mais informações sobre segurança, autorização e criptografia para chamadas de entrada para o fluxo de trabalho do seu aplicativo lógico, como TLS (Transport Layer Security),Autenticação Aberta do Microsoft Entra ID (Microsoft Entra ID OAuth), expondo seu aplicativo lógico com o Gerenciamento de API do Azure ou restringindo os endereços IP que originam chamadas de entrada, consulte Acesso para chamadas de entrada a gatilhos baseados em solicitação.