Gerenciar seu aplicativo de funções

No Azure Functions, um aplicativo de funções fornece o contexto de execução para suas funções individuais. Os comportamentos do aplicativo de funções se aplicam a todas as funções hospedadas por um aplicativo função de determinada. Todas as funções de um aplicativo de funções precisam ser da mesma linguagem.

As funções individuais em um aplicativo de funções são implantadas e escaladas juntas. Todas as funções do mesmo aplicativo de funções compartilham recursos, por instância, à medida que o aplicativo de funções é escalado.

Cadeias de conexão, variáveis de ambiente e outras configurações de aplicativo são definidas separadamente para cada aplicativo de funções. Todos os dados que precisam ser compartilhados entre os aplicativos de funções precisam ser armazenados externamente em um repositório persistente.

Introdução ao portal do Azure

Observação

Devido às limitações na edição do código de função no portal do Azure, você deve desenvolver suas funções localmente e publicar o projeto de código em um aplicativo de funções no Azure. Para obter mais informações, confira Limitações de desenvolvimento no portal do Azure

  1. Para começar, entre no portal do Azure usando sua conta do Azure. Na barra de pesquisa na parte superior do portal, insira o nome do seu aplicativo de funções e selecione-o na lista.

  2. Em Configurações no painel esquerdo, selecione Configuração.

    Function app overview in the Azure portal

Procure tudo de que precisa para gerenciar seu aplicativo de funções na página de visão geral, em particular, as Configurações de aplicativo e os Recursos da plataforma .

Trabalhar com as configurações de aplicativo

Você pode criar qualquer número de configurações de aplicativo exigidas pelo código de função. Também há configurações de aplicativo predefinidas usadas pelas Funções. Para saber mais, consulte Referência das configurações de aplicativos para o Azure Functions.

Essas configurações são armazenadas criptografadas. Para saber mais, confira Segurança das configurações de aplicativo.

As configurações de aplicativo podem ser gerenciadas no portal do Azure e usando a CLI do Azure e o Azure PowerShell. Gerencie também as configurações de aplicativo no Visual Studio Code e no Visual Studio.

Para localizar as configurações de aplicativo, confira Introdução ao portal do Azure.

A guia Configurações de aplicativo mantém as configurações usadas pelo aplicativo de funções. É necessário selecionar Mostrar valores para ver os valores no portal. Para adicionar uma configuração no portal, selecione Nova configuração de aplicativo e adicione o novo par chave-valor.

Function app settings in the Azure portal.

Usar configurações de aplicativo

Os valores de configuração do aplicativo de funções também podem ser lidos em seu código como variáveis de ambiente. Para obter mais informações, confira a seção de variáveis de Ambiente desses tópicos de referência específicos de linguagem:

Ao desenvolver um aplicativo de funções localmente, você precisa manter cópias locais desses valores no arquivo de projeto local.settings.json. Para saber mais, confira Arquivo de configurações local.

Configurações de implantação do FTPS

O Azure Functions dá suporte à implantação de código de projeto em seu aplicativo de funções usando o FTPS. Como esse método de implantação exige que você sincronize gatilhos, esse método não é recomendado. Para transferir arquivos de projeto com segurança, sempre use o FTPS e não o FTP.

Você pode obter as credenciais necessárias para a implantação do FTPS usando um destes métodos:

Você pode obter as credenciais de publicação do FTPS no portal do Azure baixando o perfil de publicação do aplicativo de funções.

Importante

O perfil de publicação contém credenciais de segurança importantes. Você sempre deve proteger o arquivo baixado em seu computador local.

Para baixar o perfil de publicação do seu aplicativo de funções:

  1. Selecione a página Visão geral do aplicativo de funções e, em seguida, selecione Obter perfil de publicação.

    Download publish profile

  2. Salve e copie o conteúdo do arquivo.

  1. No arquivo, localize o elemento publishProfile com o atributo publishMethod="FTP". Nesse elemento, os atributos publishUrl, userName e userPWD contêm a URL de destino e as credenciais para publicação do FTPS.

Tipo de plano de hospedagem

Ao criar um aplicativo de funções, você também cria um plano de hospedagem no qual o aplicativo é executado. Um plano pode ter um ou mais aplicativos de funções. A funcionalidade, o dimensionamento e o preço das funções dependem do tipo de plano. Para saber mais, confira Opções de hospedagem do Azure Functions.

Você pode determinar o tipo de plano que está sendo usado pelo aplicativo de funções no portal do Azure ou usando as APIs da CLI do Azure ou do Azure PowerShell.

Os seguintes valores indicam o tipo de plano:

Tipo de plano Portal CLI do Azure/PowerShell
Consumo Consumo Dynamic
Premium ElasticPremium ElasticPremium
Dedicado (Serviço de Aplicativo) Vários Vários

Para determinar o tipo de plano usado pelo aplicativo de funções, confira Plano do Serviço de Aplicativo na guia Visão geral do aplicativo de funções no portal do Azure. Para ver o tipo de preço, selecione o nome do Plano do Serviço de Aplicativo e escolha Propriedades no painel esquerdo.

View scaling plan in the portal

Planejar a migração

Use o portal do Azure ou os comandos da CLI do Azure para migrar um aplicativo de funções entre um plano de Consumo e um plano Premium no Windows. Ao migrar entre planos, tenha em mente as seguintes considerações:

  • Atualmente, não há suporte à migração direta para um plano Dedicado (Serviço de Aplicativo).
  • Não há suporte para migração no Linux.
  • O plano de origem e o plano de destino devem estar no mesmo grupo de recursos e região geográfica. Para obter mais informações, consulte Mover um aplicativo para outro plano do serviço de aplicativo.
  • Os comandos CLI específicos dependem da direção da migração.
  • O tempo de inatividade em suas execuções de função ocorre à medida que o aplicativo de funções é migrado entre planos.
  • O estado e outros conteúdos específicos do aplicativo são mantidos, já que o mesmo compartilhamento de Arquivos do Azure é usado pelo aplicativo antes e depois da migração.

Migração no portal

No portal do Azure, navegue até seu aplicativo de plano Consumo ou Premium e escolha Alterar plano do Serviço de Aplicativo em Plano do Serviço de Aplicativo. Selecione o outro Tipo de plano, crie um novo plano de Serviço de Aplicativo do novo tipo e selecione OK. Para obter mais informações, consulte Mover um aplicativo para outro plano do serviço de aplicativo.

Consumo para Premium

Use o seguinte procedimento para migrar de um plano de Consumo para um plano Premium no Windows:

  1. Execute o comando az functionapp plan create da seguinte maneira para criar um Plano do Serviço de Aplicativo (Premium Elástico) na mesma região e no mesmo grupo de recursos do aplicativo de funções existente:

    az functionapp plan create --name <NEW_PREMIUM_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP> --location <REGION> --sku EP1
    
  2. Execute o comando az functionapp update da seguinte maneira para migrar o aplicativo de funções existente para o novo plano Premium:

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_PREMIUM_PLAN>
    
  3. Se não precisar mais do plano de Consumo anterior do aplicativo de funções, exclua o plano original do aplicativo de funções depois de confirmar que você migrou com êxito para o novo. Execute o comando az functionapp plan list da seguinte maneira para obter uma lista de todos os planos de Consumo no grupo de recursos:

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='Y'].{PlanName:name,Sites:numberOfSites}" -o table
    

    Você pode excluir com segurança o plano sem nenhum site, que é aquele do qual você fez a migração.

  4. Execute o comando az functionapp plan delete da seguinte maneira para excluir o plano de Consumo do qual você migrou.

    az functionapp plan delete --name <CONSUMPTION_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP>
    

Premium para Consumo

Use o seguinte procedimento para migrar de um plano Premium para um plano de Consumo no Windows:

  1. Execute o comando az functionapp plan create da seguinte maneira para criar um aplicativo de funções (Consumo) na mesma região e no mesmo grupo de recursos do aplicativo de funções existente. Esse comando também cria um plano de Consumo no qual o aplicativo de funções será executado.

    az functionapp create --resource-group <MY_RESOURCE_GROUP> --name <NEW_CONSUMPTION_APP_NAME> --consumption-plan-location <REGION> --runtime dotnet --functions-version 3 --storage-account <STORAGE_NAME>
    
  2. Execute o comando az functionapp update da seguinte maneira para migrar o aplicativo de funções existente para o novo plano de Consumo.

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_CONSUMPTION_PLAN> --force
    
  3. Execute o comando az functionapp delete da seguinte maneira para excluir o aplicativo de funções criado na etapa 1, pois você só precisa do plano que foi criado para executar o aplicativo de funções existente.

    az functionapp delete --name <NEW_CONSUMPTION_APP_NAME> --resource-group <MY_RESOURCE_GROUP>
    
  4. Se não precisar mais do plano Premium anterior do aplicativo de funções, exclua o plano original do aplicativo de funções depois de confirmar que você migrou com êxito para o novo. Até que o plano Premium seja excluído, você continuará sendo cobrado por ele. Execute o comando az functionapp plan list da seguinte maneira para obter uma lista de todos os planos Premium no grupo de recursos.

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='EP'].{PlanName:name,Sites:numberOfSites}" -o table
    
  5. Execute o comando az functionapp plan delete da seguinte maneira para excluir o plano Premium do qual você migrou.

    az functionapp plan delete --name <PREMIUM_PLAN> --resource-group <MY_RESOURCE_GROUP>
    

Obter chaves de acesso de função

As funções disparadas por HTTP geralmente podem ser chamadas usando uma URL no formato: https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>. Quando a autorização da função é definida como um valor diferente de anonymous, é necessário fornecer também uma chave de acesso em sua solicitação. A chave de acesso pode ser fornecida na URL usando a cadeia de caracteres de consulta ?code= ou no cabeçalho de solicitação. Para saber mais, confira Chaves de acesso da função. Existem várias maneiras de obter as chaves de acesso.

  1. Entre no portal do Azure, em seguida, procure e selecione Aplicativo de Funções.

  2. Selecione a função que você deseja verificar.

  3. No painel de navegação à esquerda em Funções, selecione Chaves de aplicativo.

    As chaves de host são fornecidas e podem ser usadas para acessar funções no aplicativo. A chave do sistema também é fornecida e concede acesso de nível de administrador a todas as APIs do aplicativo de funções.

Também é possível exercer o mínimo de privilégios usando a chave apenas com a chave de função específica selecionando Chaves de função em Desenvolvedor em sua função disparada por HTTP.

Limitações de desenvolvimento no portal do Azure

Você deve considerar essas limitações ao desenvolver suas funções no portal do Azure:

  • A edição no portal só tem suporte para as funções JavaScript, PowerShell, Python e C# Script.
  • A edição do Python no portal só tem suporte ao ser executada no plano de Consumo.
  • Atualmente, há suporte apenas para edição no portal para funções que foram criadas ou modificadas pela última vez no portal.
  • Ao implantar o código em um aplicativo de funções de fora do portal, você não poderá mais editar nenhum código desse aplicativo de funções no portal. Nesse caso, continue usando o desenvolvimento local.
  • Para funções C# compiladas, funções Java e algumas funções do Python, você pode criar o aplicativo de funções e recursos relacionados no portal. No entanto, você deve criar o projeto de código das funções localmente e depois publicá-lo no Azure.

Quando possível, você deve desenvolver suas funções localmente e publicar seu projeto de código em um aplicativo de funções no Azure. Para mais informações, confira Codificar e testar o Azure Functions localmente.

Instalar extensões manualmente

As funções da biblioteca de classes C# podem incluir os pacotes de NuGet para extensões de associação diretamente no projeto da biblioteca de classes. Para outras linguagens non-.NET e script C#, você deve usar pacotes de extensão. Se você precisar instalar manualmente as extensões, poderá fazer isso usando o Azure Functions Core Tools localmente. Se você não puder usar pacotes de extensão e só puder trabalhar no portal, precisará usar Ferramentas Avançadas (Kudu) para criar manualmente o arquivo extensions.csproj diretamente no site. Primeiro remova o elemento extensionBundle do arquivo host.json.

Esse mesmo processo funciona para qualquer outro arquivo que você precisa adicionar ao aplicativo.

Importante

Quando possível, você não deve editar arquivos diretamente no aplicativo de funções no Azure. É recomendável baixar os arquivos de aplicativo localmente, usar as Ferramentas Principais para instalar extensões e outros pacotes, validar as alterações e republicar o aplicativo usando as Ferramentas Principais ou um dos outros métodos de implantação com suporte.

O editor do Functions integrado ao portal do Azure permite atualizar o código de função e os arquivos de configuração diretamente no portal.

  1. Selecione o aplicativo de funções e, em Funções, selecione Funções.
  2. Escolha a função e selecione Código + teste em Desenvolvedor.
  3. Escolha o arquivo para editar e selecione Salvar quando terminar.

Os arquivos na raiz do aplicativo, como function.proj ou extensions.csproj, precisam ser criados e editados usando as Ferramentas Avançadas (Kudu).

  1. No menu recurso do aplicativo de funções, em Ferramentas de desenvolvimento, selecione as Ferramentas Avançadas>Ir para.

  2. Se solicitado, entre no site do SCM com as credenciais do Azure.

  3. No menu Depurar console, escolha CMD.

  4. Navegue até .\site\wwwroot, selecione o botão de adição (+) na parte superior e selecione Novo arquivo.

  5. Nomeie o arquivo, como extensions.csproj e pressione Enter.

  6. Selecione o botão editar ao lado do novo arquivo, adicione ou atualize o código no arquivo e selecione Salvar.

  7. Para um arquivo de projeto como extensions.csproj, execute o seguinte comando para recompilar o projeto de extensões:

    dotnet build extensions.csproj
    

Recursos da plataforma

Os aplicativos de funções são executados na plataforma do Serviço de Aplicativo do Azure e mantidos por ela. Dessa forma, seus aplicativos de funções têm acesso à maioria dos recursos da principal plataforma de hospedagem na Web do Azure. Ao trabalhar no portal do Azure, o painel esquerdo é onde você acessa os vários recursos da plataforma Serviço de Aplicativo que podem ser usados nos aplicativos de funções.

A seguinte matriz indica o suporte a recursos do portal hospedando o plano e o sistema operacional:

Recurso Plano de Consumo Plano Premium Plano dedicado
Ferramentas avançadas (Kudu) Windows: ✔
Linux: X
Editor do Serviço de Aplicativo Windows: ✔
Linux: X
Windows: ✔
Linux: X
Windows: ✔
Linux: X
Backups X X
Console Windows: linha de comando
Linux: X
Windows: linha de comando
Linux: SSH
Windows: linha de comando
Linux: SSH

O restante deste artigo trata dos seguintes recursos no portal do Azure que são úteis para os aplicativos de funções:

Para saber mais sobre como trabalhar com configurações da Serviço de Aplicativo, confira Definir configurações do Serviço de Aplicativo do Azure.

Editor do Serviço de Aplicativo

The App Service editor

O Editor do Serviço de Aplicativo é um editor avançado dentro do portal que você pode usar para modificar arquivos de configuração JSON e arquivos de código. Escolher essa opção inicia uma nova guia do navegador com um editor básico. Isso permite que você se integre ao repositório do Git, execute e depure código, além de modificar as configurações do aplicativos de funções. Esse editor fornece um ambiente de desenvolvimento avançado para suas funções em comparação com o editor de funções interno.

Recomendamos que você considere o desenvolvimento de funções no computador local. Quando você as desenvolve localmente e as publica no Azure, os arquivos de projeto são somente leitura no portal. Para saber mais, confira Codificar e testar o Azure Functions localmente.

Console

Function app console

O console no portal é uma ferramenta ideal de desenvolvimento quando você preferir interagir com seu aplicativo de funções na linha de comando. Os comandos comuns incluem criação e navegação de diretório e arquivo, bem como execução scripts e arquivos em lote.

No desenvolvimento local, recomendamos usar o Azure Functions Core Tools e a CLI do Azure.

Ferramentas avançadas (Kudu)

Configure Kudu

As ferramentas avançadas para o Serviço de Aplicativo (também conhecidas como Kudu) fornecem acesso a recursos administrativos avançados de seu aplicativo de funções. No Kudu, você pode gerenciar informações do sistema, configurações do aplicativo, variáveis de ambiente, extensões do site, cabeçalhos HTTP e variáveis de servidor. Você também pode iniciar o Kudu navegando até o ponto de extremidade SCM de seu aplicativo de funções, comohttps://<myfunctionapp>.scm.azurewebsites.net/

Centro de Implantação

Quando você usa uma solução de controle do código-fonte para desenvolver e manter o código de funções, o Centro de Implantação permite compilá-lo e implantá-lo por meio do controle do código-fonte. Seu projeto é compilado e implantado no Azure quando você faz atualizações. Para obter mais informações, confira Tecnologias de implantação do Azure Functions.

Compartilhamento de recursos entre origens

Para evitar a execução de código mal-intencionado no cliente, os navegadores modernos bloqueiam as solicitações de aplicativos Web para recursos em execução em um domínio separado. O CORS (compartilhamento de recursos entre origens) permite que um cabeçalho Access-Control-Allow-Origin declare quais origens têm permissão para chamar pontos de extremidade no seu aplicativo de funções.

Portal

Quando você configura a lista de Origens permitidas do aplicativo de funções, o cabeçalho Access-Control-Allow-Origin é automaticamente adicionado a todas as respostas de pontos de extremidade HTTP no aplicativo de funções.

Configure function app's CORS list

O caractere curinga (*) será ignorado se houver outra entrada de domínio.

Use o comando az functionapp cors add para adicionar um domínio à lista de origens permitidas. O seguinte exemplo adiciona o domínio contoso.com:

az functionapp cors add --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--allowed-origins https://contoso.com

Use o comando az functionapp cors show para listar as origens permitidas atuais.

Autenticação

Configure authentication for a function app

Quando as funções usam um gatilho HTTP, você pode exigir que as chamadas sejam autenticadas primeiro. O Serviço de Aplicativo dá suporte à autenticação no Microsoft Entra e à entrada com provedores sociais, como Facebook, Microsoft e Twitter. Para obter detalhes sobre como configurar provedores de autenticação específicos, consulte Visão geral de autenticação do serviço de aplicativo do Azure.

Próximas etapas