Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)
Os Aplicativos Lógicos do Azure e o Azure Functions funcionam juntos para que você possa estender e aprimorar seus fluxos de trabalho de integração com execução de código personalizada, cálculos avançados e processamento dinâmico de dados. Ao criar funções no Azure Functions, você pode chamar e executar essas funções de seus fluxos de trabalho. A plataforma do Azure Functions permite executar código sem criar um aplicativo completo ou configurar uma infraestrutura separada e fornece computação baseada em nuvem que pode executar tarefas como os seguintes exemplos:
- Estenda o comportamento do fluxo de trabalho executando funções criadas usando C# ou Node.js.
- Execute cálculos no seu fluxo de trabalho.
- Aplique a formatação avançada ou campos de computação em seu fluxo de trabalho.
Este guia mostra como chamar e executar uma função no Azure Functions no seu fluxo de trabalho, seja você usando o plano de Consumo ou o plano Standard. Você também aprenderá sobre pré-requisitos, limitações e dicas para trabalhar com o Azure Functions para garantir a integração perfeita e o desempenho ideal. Para obter mais informações, consulte Azure Functions e Aplicativos Lógicos do Azure.
Observação
Se você quiser executar o código sem usar o Azure Functions, confira:
Limitações
Para que o Azure Functions opere corretamente em seu fluxo de trabalho, as seguintes limitações se aplicam:
Os recursos do aplicativo de funções devem usar a pilha de runtime .NET ou Node.js.
As funções devem usar código C# ou JavaScript.
As funções devem usar o modelo de gatilho HTTP .
O modelo de gatilho HTTP pode aceitar e manipular conteúdo do tipo
application/jsoncomo entrada no seu fluxo de trabalho. Quando você adiciona uma função do Azure ao fluxo de trabalho, o designer de fluxo de trabalho mostra todas as funções personalizadas disponíveis criadas com esse modelo em sua assinatura do Azure.As funções não podem usar rotas personalizadas, a menos que também tenham definições de OpenAPI correspondentes.
Se sua função tiver uma definição de OpenAPI, o designer de fluxo de trabalho fornecerá uma experiência mais avançada quando você trabalha com parâmetros de função. Antes que o fluxo de trabalho possa encontrar e acessar funções que tenham definições openapi, configure seu aplicativo de funções com essas etapas.
Para autenticação de chamada de função do Azure, somente fluxos de trabalho de consumo atualmente dão suporte à autenticação de identidade gerenciada com o Microsoft Entra ID. Para obter mais informações, confira como habilitar a autenticação para chamadas de função do Azure.
Atualmente, os fluxos de trabalho padrão não dão suporte à autenticação de identidade gerenciada.
Nos Aplicativos Lógicos do Azure não há suporte para o uso do Azure Functions com slots de implantação habilitados.
Embora esse cenário possa funcionar às vezes, esse comportamento é imprevisível e pode resultar em problemas de autorização quando o fluxo de trabalho tenta chamar a função do Azure.
Pré-requisitos
Uma conta e uma assinatura do Azure. Obtenha uma conta gratuita do Azure.
Um recurso de aplicativo de funções do Azure, que pode conter uma ou mais funções do Azure.
Use a mesma assinatura do Azure para o recurso de aplicativo de funções e o recurso de aplicativo lógico.
A função do Azure que deve ser chamada do fluxo de trabalho.
Para criar essa função, use qualquer uma das seguintes ferramentas:
Seu código de função deve incluir a resposta e o conteúdo que você deseja que retornem ao fluxo de trabalho após a conclusão da função.
Este guia usa a função de exemplo a seguir chamada FabrikamAzureFunction. O
contextobjeto nesta função de exemplo refere-se à mensagem que o fluxo de trabalho envia por meio do parâmetro de ação do Azure Functions chamado Corpo da Solicitação e, posteriormente, é explicado neste guia:module.exports = function (context, data) { var input = data; // Function processing logic // Function response for later use context.res = { body: { content:"Thank you for your feedback: " + input } }; context.done(); }Para acessar as propriedades do objeto
contextde dentro de sua função, use a seguinte sintaxe:context.body.<property-name>Por exemplo, para fazer referência à propriedade
contentno objetocontext, use a seguinte sintaxe:context.body.contentEsse código também inclui uma variável
input, que armazena o valor do parâmetrodatapara que sua função possa executar operações nesse valor. Dentro das funções JavaScript, adatavariável também é um atalho paracontext.body.Observação
A propriedade
bodymencionada aqui se aplica ao objetocontexte difere do valor Body na saída de uma ação, o qual você pode também passar para sua função.
Um fluxo de trabalho de aplicativo lógico de Consumo ou Standard que começa com qualquer gatilho.
Os exemplos deste guia usam o gatilho do Outlook do Office 365 chamado Quando um novo email é recebido.
Para criar e chamar uma função do Azure que chame outro fluxo de trabalho, verifique se o fluxo de trabalho secundário começa com um gatilho que fornece um ponto de extremidade que pode ser chamado.
Por exemplo, você pode iniciar o fluxo de trabalho com o gatilho geral de HTTP ou Solicitação ou pode usar um gatilho baseado em serviço, como Filas do Azure ou Grade de Eventos. Dentro de sua função, envie uma solicitação HTTP POST para a URL do gatilho e inclua o conteúdo que você deseja que o seu fluxo de trabalho secundário processe. Para obter mais informações, consulte Chamar, acionar ou aninhar fluxos de trabalho.
Dicas para trabalhar com funções do Azure
Encontre funções com definições OpenAPI
Para configurar seu aplicativo de funções para que seu fluxo de trabalho possa encontrar e usar funções que tenham definições OpenAPI, siga essas etapas:
No portal do Azure, abra o aplicativo de funções. Verifique se o aplicativo de funções está sendo executado ativamente.
No aplicativo de funções, configure o CORS (Cross-Origin Resource Sharing) para que todas as origens sejam permitidas seguindo estas etapas:
Acessar os valores de propriedade em solicitações HTTPS
As funções baseadas em webhook podem aceitar solicitações HTTPS como entradas e passar essas solicitações para outras funções.
Por exemplo, embora os Aplicativos Lógicos do Azure tenham funções que convertem valores DateTime, a função JavaScript de exemplo básica a seguir mostra como você pode acessar uma propriedade em um objeto de solicitação que passa para a função e executar operações nesse valor de propriedade.
Para acessar propriedades em objetos, este exemplo usa o operador dot (.):
function convertToDateString(request, response){
var data = request.body;
response = {
body: data.date.ToDateString();
}
}
As etapas a seguir descrevem o que acontece nesta função:
A função cria uma
datavariável e atribui obodyobjeto, que está norequestobjeto, à variável. Para fazer referência aobodyobjeto norequestobjeto, a função usa o operador dot (.):var data = request.body;A função agora pode acessar a
datepropriedade por meio dadatavariável.A função converte o valor da propriedade do tipo DateTime para o tipo DateString chamando a
ToDateString()função. A função retorna o resultado por meio dabodypropriedade na resposta da função:body: data.date.ToDateString();Depois de criar sua função no Azure Functions, siga as etapas para adicionar uma função do Azure ao fluxo de trabalho.
Passar parâmetros URI para uma função
Se você precisar passar um parâmetro URI para sua função, poderá usar parâmetros de consulta no URL do ponto de extremidade da função.
No designer de fluxo de trabalho com o painel de informações de função aberto, na lista de parâmetros Avançados , selecione Consultas.
Aparece uma tabela onde você pode inserir parâmetros de entrada como pares chave-valor.
Insira o par chave-valor para seu parâmetro, por exemplo:
Adicionar uma função ao fluxo de trabalho (fluxos de trabalho de Consumo + Standard)
Para chamar uma função do Azure do fluxo de trabalho, adicione essa função como qualquer outra ação no designer de fluxo de trabalho.
No portal do Azure, abra o recurso do aplicativo de lógica de Consumo. Abra o fluxo de trabalho no designer.
No designer, siga as etapas gerais para adicionar a ação do Azure Functions chamada Escolher uma função do Azure.
No painel Adicionar uma ação, siga essas etapas:
Na lista de aplicativos de funções, selecione seu aplicativo de funções.
Selecione a função e, em seguida, selecione Adicionar ação, por exemplo:
Após a caixa de informações da função aparecer, siga esses passos:
Para o Corpo da Solicitação, insira a entrada da função, que deve usar o formato para um objeto JSON (JavaScript Object Notation), por exemplo:
{"context": <selected-input> }Essa entrada é o conteúdo objeto de contexto ou a mensagem que o seu fluxo de trabalho do aplicativo lógico envia para a sua função.
Para selecionar valores de saída das etapas anteriores no fluxo de trabalho, selecione dentro da caixa Corpo da Solicitação e selecione a opção que abre a lista de conteúdo dinâmico (ícone relâmpago).
Para criar uma expressão, selecione dentro da caixa Corpo da Solicitação e selecione a opção que abre o editor de expressões (ícone de função).
O exemplo a seguir especifica um objeto JSON com o atributo
contente o valor de saída From do gatilho de email como o valor de Request Body:
Nesse caso, o objeto de contexto não é convertido como uma cadeia de caracteres. O conteúdo do objeto é adicionado diretamente ao payload JSON. A imagem a seguir mostra o exemplo concluído:
Se você inserir um objeto de contexto diferente de um token JSON que passa uma cadeia de caracteres, um objeto JSON ou uma matriz JSON, você receberá um erro. No entanto, você pode converter o objeto de contexto em uma string colocando o token entre aspas (" "), por exemplo, se você quiser usar o valor de saída Hora Recebida:
Para inserir outras informações, como o método a ser usado, cabeçalhos de solicitação, parâmetros de consulta ou autenticação, abra a lista de parâmetros Avançados e selecione os parâmetros desejados.
Para a autenticação, suas opções são diferentes com base na função selecionada. Para obter mais informações, consulte Habilitar autenticação para funções.
Habilitar a autenticação para chamadas de função do Azure (somente fluxos de trabalho de Consumo)
Seu fluxo de trabalho de Consumo pode usar uma identidade gerenciada atribuída manualmente pelo usuário para autenticar a chamada para a função do Azure e acessar recursos protegidos pelo Microsoft Entra ID. Uma identidade gerenciada autentica o acesso sem exigir que você entre e forneça credenciais ou segredos. O Azure gerencia essa identidade para você e ajuda a manter suas credenciais seguras porque você não precisa gerenciar credenciais ou atualizar segredos.
Para esse cenário, você precisa configurar uma identidade gerenciada atribuída pelo usuário no nível do recurso do aplicativo lógico. A chamada que o fluxo de trabalho faz para a função do Azure usa essa identidade gerenciada para autenticação.
Para obter mais informações, consulte:
Para configurar o aplicativo de funções e a função para que eles usem a identidade gerenciada para o recurso de aplicativo lógico de consumo, siga estas etapas de alto nível:
Habilite e configure a identidade gerenciada para o recurso de aplicativo lógico.
Localize os valores necessários para configurar a autenticação do Microsoft Entra.
Configure sua função para autenticação anônima (somente para fluxos de trabalho de Consumo)
Para que sua função use a identidade gerenciada para o recurso de aplicativo lógico de consumo, defina o nível de autenticação da função como anônimo. Caso contrário, seu fluxo de trabalho irá gerar um erro BadRequest.
No portal do Azure, abra o aplicativo de funções.
As etapas a seguir usam um aplicativo de funções de exemplo chamado FabrikamFunctionApp.
Na barra lateral do aplicativo de funções, em Ferramentas de Desenvolvimento, selecione Ferramentas Avançadas>Ir.
Para confirmar se você deseja sair do portal do Azure e ir para a URL do site para seu aplicativo de funções, selecione Continuar.
Depois que a página Serviços do Kudu for aberta, na barra de título do site do Kudu, no menu Console de depuração, selecione CMD.
Na próxima página, na lista de pastas, selecione o site>wwwroot>sua função.
As etapas a seguir usam uma função de exemplo chamada FabrikamAzureFunction.
Abra o arquivo function.json para edição.
bindingsNo objeto, confirme se aauthLevelpropriedade existe.Se existir, defina o valor da propriedade para
anonymous. Caso contrário, adicione a propriedade e defina o valor.Quando terminar, na barra de ferramentas do editor, selecione Salvar. Siga para a próxima seção.
Localizar os valores necessários para configurar a autenticação do Microsoft Entra (somente fluxos de trabalho de Consumo)
Antes de configurar seu aplicativo de funções para usar a identidade gerenciada e a autenticação do Microsoft Entra, você precisa encontrar e salvar IDs específicas seguindo estas etapas de alto nível:
Encontre a ID do locatário do seu locatário do Microsoft Entra.
Localize a ID do aplicativo para o aplicativo empresarial associado à sua identidade gerenciada.
Encontrar a ID do locatário do seu locatário do Microsoft Entra
Execute o comando do PowerShell chamado Get-AzContext ou, no portal do Azure, siga estas etapas:
No portal do Azure, abra o locatário do Microsoft Entra.
Este guia usa o Fabrikam como o locatário de exemplo.
Na barra lateral do locatário, selecione Visão geral.
Copie e salve sua ID de locatário para uso posterior, por exemplo:
Encontrar a ID do objeto da sua identidade gerenciada
Depois de configurar a identidade gerenciada atribuída pelo usuário para o recurso de aplicativo lógico de consumo, localize o ID do objeto para a identidade gerenciada. Você usará essa ID para encontrar o aplicativo Enterprise associado no seu locatário do Microsoft Entra.
Na barra lateral do aplicativo lógico, em Configurações, selecione Identidade e selecione Usuário atribuído.
Na guia Atribuído pelo usuário, selecione a identidade gerenciada:
Copie a ID do objeto (principal) da identidade:
Encontrar a ID do aplicativo para o aplicativo Azure Enterprise associado à sua identidade gerenciada
Depois de habilitar a identidade gerenciada para o recurso de aplicativo lógico de consumo, o Azure cria automaticamente um aplicativo Azure Enterprise associado que tem o mesmo nome.
Você precisa encontrar o aplicativo Enterprise associado e copiar sua ID do aplicativo. Você usará este identificador do aplicativo para adicionar um provedor de identidade ao seu aplicativo de funções criando um registro de aplicativo.
No portal do Azure, abra o locatário do Microsoft Entra.
Na barra lateral do locatário, em Gerenciar, selecione aplicativos Empresariais.
Na página Todos os aplicativos, na caixa de pesquisa, insira a ID do objeto para sua identidade gerenciada. Nos resultados, localize o aplicativo empresarial correspondente e copie a ID do Aplicativo:
Continue para a próxima seção para adicionar um provedor de identidade ao seu aplicativo de funções usando a ID do aplicativo copiado.
Adicionar um provedor de identidade para seu aplicativo de funções (somente fluxos de trabalho de consumo)
Depois de obter a ID do locatário e a ID do aplicativo, configure seu aplicativo de funções para usar a autenticação do Microsoft Entra adicionando um provedor de identidade e criando um registro de aplicativo.
No portal do Azure, abra o aplicativo de funções.
Na barra lateral do aplicativo de funções, em Configurações, selecione Autenticação e, em seguida, selecione Adicionar provedor de identidade, por exemplo:
Na página Adicionar um provedor de identidade , na guia Noções básicas , na lista provedor de identidade , selecione a Microsoft.
Em Registro de aplicativo, para o tipo de registro de aplicativo, selecione Fornecer os detalhes de um registro de aplicativo existente e insira os valores que você salvou anteriormente, quando descrito na tabela a seguir:
Parâmetro Obrigatório Valor Descrição ID do Aplicativo (cliente) Sim < application-ID> O identificador exclusivo a ser usado para este registro de aplicativo. Para esse exemplo, use a ID do aplicativo copiada para o aplicativo empresarial associado à sua identidade gerenciada. URL do emissor Não < authentication-endpoint-URL>/<Microsoft-Entra-tenant-ID>/v2.0 Essa URL redireciona os usuários para o locatário correto do Microsoft Entra e baixa os metadados apropriados para determinar as chaves de assinatura de token apropriadas e o valor de declaração do emissor do token. Para aplicativos que usam o Azure AD v1, omita /v2.0 da URL.
Para este cenário, use a seguinte URL:
https://sts.windows.net/< Microsoft-Entra-tenant-ID>Audiências de token permitidas Não < application-ID-URI> O URI da ID do aplicativo (ID do recurso) para o aplicativo de funções. Para um aplicativo de nuvem ou de servidor que quiser permitir tokens de autenticação de um aplicativo Web, adicione o URI da ID do aplicativo para o aplicativo Web. A ID do cliente configurada é sempre implicitamente considerada um audiência permitida.
Para esse cenário, o valor é o seguinte URI:https://management.azure.com
Posteriormente, use o mesmo URI na propriedade Audience ao configurar sua ação de função em seu fluxo de trabalho para usar a identidade gerenciada.
Importante: o URI da ID do aplicativo (ID do recurso) deve corresponder exatamente ao valor esperado pelo Microsoft Entra ID, incluindo as barras à direita necessárias.Sua versão agora se parece com o seguinte exemplo:
Se você estiver configurando seu aplicativo de funções com um provedor de identidade pela primeira vez, a seção Configurações de autenticação do serviço de aplicativo também será exibida. Essas opções determinam como seu aplicativo de funções responde a solicitações não autenticadas. A seleção padrão redireciona todas as solicitações para entrar com o novo provedor de identidade. Você pode personalizar esse comportamento agora ou ajustar essas configurações posteriormente na página principal de Autenticação escolhendo Editar ao lado de Configurações de autenticação. Para saber mais sobre essas opções, consulte o fluxo de autenticação – autenticação e autorização no Serviço de Aplicativo do Azure e no Azure Functions.
Caso contrário, continue com a próxima etapa.
Para concluir a criação do registro do aplicativo, selecione Adicionar.
A página Autenticação exibe o provedor de identidade e a ID de cliente do registro deste aplicativo. Seu aplicativo de funções agora pode usar esse registro de aplicativo para autenticação.
Copie e salve a ID do Aplicativo (cliente) do registro do aplicativo.
Você usará essa ID na ação do Azure Functions que adicionar ao fluxo de trabalho.
Retorne ao designer de fluxo de trabalho e siga as etapas para autenticar o acesso com a identidade gerenciada usando a ação do Azure Functions.
Lembre-se de inserir a ID do aplicativo (cliente) na propriedade Audience da ação de função.