Gerir a sua aplicação de funções

No Funções do Azure, uma aplicação de funções fornece o contexto de execução para as suas funções individuais. Os comportamentos da aplicação de funções aplicam-se a todas as funções alojadas por uma determinada aplicação de funções. Todas as funções numa aplicação de funções têm de ter o mesmo idioma.

As funções individuais numa aplicação de funções são implementadas em conjunto e são dimensionadas em conjunto. Todas as funções na mesma aplicação de funções partilham recursos, por instância, à medida que a aplicação de funções é dimensionada.

As cadeias de ligação, as variáveis de ambiente e outras definições da aplicação são definidas separadamente para cada aplicação de funções. Todos os dados que têm de ser partilhados entre aplicações de funções devem ser armazenados externamente num arquivo persistente.

Começar a utilizar o portal do Azure

  1. Para começar, aceda ao portal do Azure e inicie sessão na sua conta do Azure. Na barra de pesquisa na parte superior do portal, introduza o nome da sua aplicação de funções e selecione-a na lista.

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

    Descrição geral da aplicação de funções no portal do Azure

Pode navegar para tudo o que precisa para gerir a sua aplicação de funções a partir da página de descrição geral, em particular as Definições da aplicação e as Funcionalidades da plataforma.

Trabalhar com as definições da aplicação

Pode criar qualquer número de definições de aplicação exigidas pelo código da função. Também existem definições de aplicação predefinidas utilizadas pelas Funções. Para saber mais, veja a Referência das definições da aplicação para Funções do Azure.

Estas definições são armazenadas encriptadas. Para saber mais, veja Segurança das definições da aplicação.

As definições da aplicação podem ser geridas a partir do portal do Azure e com a CLI do Azure e Azure PowerShell. Também pode gerir as definições da aplicação a partir do Visual Studio Code e do Visual Studio.

Para encontrar as definições da aplicação, veja Introdução ao portal do Azure.

O separador Definições da aplicação mantém as definições utilizadas pela sua aplicação de funções. Tem de selecionar Mostrar valores para ver os valores no portal. Para adicionar uma definição no portal, selecione Nova definição de aplicação e adicione o novo par chave-valor.

Definições da aplicação de funções no portal do Azure.

Utilizar as definições da aplicação

Os valores das definições da aplicação de funções também podem ser lidos no código como variáveis de ambiente. Para obter mais informações, veja a secção Variáveis de ambiente destes tópicos de referência específicos do idioma:

Quando desenvolve uma aplicação de funções localmente, tem de manter cópias locais destes valores no ficheiro de projeto local.settings.json. Para saber mais, consulte Ficheiro de definições locais.

Tipo de plano de alojamento

Quando cria uma aplicação de funções, também cria um plano de alojamento no qual a aplicação é executada. Um plano pode ter uma ou mais aplicações de funções. A funcionalidade, o dimensionamento e os preços das suas funções dependem do tipo de plano. Para saber mais, veja Funções do Azure opções de alojamento.

Pode determinar o tipo de plano que está a ser utilizado pela sua aplicação de funções a partir do portal do Azure ou através da CLI do Azure ou Azure PowerShell APIs.

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 Aplicações) Vários Vários

Para determinar o tipo de plano utilizado pela sua aplicação de funções, veja Serviço de Aplicações plano no separador Descrição geral da aplicação de funções no portal do Azure. Para ver o escalão de preço, selecione o nome do Serviço de Aplicações Plano e, em seguida, selecione Propriedades no painel esquerdo.

Ver o plano de dimensionamento no portal

Planear a migração

Pode utilizar os comandos portal do Azure ou da CLI do Azure para migrar uma aplicação de funções entre um plano de Consumo e um plano Premium no Windows. Ao migrar entre planos, tenha em atenção as seguintes considerações:

  • A migração direta para um plano Dedicado (Serviço de Aplicações) não é atualmente suportada.
  • A migração não é suportada no Linux.
  • O plano de origem e o plano de destino têm de estar no mesmo grupo de recursos e na mesma região geográfica. Para obter mais informações, veja Mover uma aplicação para outro plano de Serviço de Aplicações.
  • Os comandos específicos da CLI dependem da direção da migração.
  • O tempo de inatividade nas execuções de funções ocorre à medida que a aplicação de funções é migrada entre planos.
  • O estado e outros conteúdos específicos da aplicação são mantidos, uma vez que a mesma partilha Ficheiros do Azure é utilizada pela aplicação antes e depois da migração.

Migração no portal

Na portal do Azure, navegue para a sua aplicação de plano Consumo ou Premium e selecione Alterar Serviço de Aplicações plano ao abrigo Serviço de Aplicações plano. Selecione o outro Tipo de plano, crie um novo Serviço de Aplicações plano do novo tipo e selecione OK. Para obter mais informações, veja Mover uma aplicação para outro plano de Serviço de Aplicações.

Consumo para Premium

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

  1. Execute o comando az functionapp plan create da seguinte forma para criar um novo plano de Serviço de Aplicações (Elastic Premium) na mesma região e grupo de recursos que a sua aplicação 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 forma para migrar a aplicação 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 já não precisar do plano anterior da aplicação de funções Consumo, elimine o plano original da aplicação de funções depois de confirmar que migrou com êxito para o novo. Execute o comando az functionapp plan list da seguinte forma para obter uma lista de todos os planos de Consumo no seu grupo de recursos:

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

    Pode eliminar o plano com segurança com zero sites, que é aquele a partir do qual migrou.

  4. Execute o comando az functionapp plan delete da seguinte forma para eliminar o plano de Consumo do qual migrou.

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

Premium para Consumo

Utilize 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 forma para criar uma nova aplicação de funções (Consumo) na mesma região e grupo de recursos que a sua aplicação de funções existente. Este comando também cria um novo plano de Consumo no qual a aplicação de funções é executada.

    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 forma para migrar a aplicação 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 forma para eliminar a aplicação de funções que criou no passo 1, uma vez que só precisa do plano que foi criado para executar a aplicação de funções existente.

    az functionapp delete --name <NEW_CONSUMPTION_APP_NAME> --resource-group <MY_RESOURCE_GROUP>
    
  4. Se já não precisar do plano anterior da aplicação de funções Premium, elimine o plano original da aplicação de funções depois de confirmar que migrou com êxito para o novo. Tenha em atenção que, se o plano não for eliminado, continuará a ser-lhe cobrado o plano Premium. Execute o comando az functionapp plan list da seguinte forma para obter uma lista de todos os planos Premium no seu 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 forma para eliminar o plano Premium do qual migrou.

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

Obter as chaves de acesso de função

Geralmente, as funções acionadas por HTTP podem ser chamadas através de um URL no formato: https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>. Quando a autorização para a sua função é definida como um valor diferente anonymousde , também tem de fornecer uma chave de acesso no seu pedido. A chave de acesso pode ser fornecida no URL com a ?code= cadeia de consulta ou no cabeçalho do pedido. Para saber mais, veja Teclas de acesso a funções. Existem várias formas de obter as chaves de acesso.

  1. Inicie sessão no portal do Azure e, em seguida, procure e selecione Function App.

  2. Selecione a função que pretende verificar.

  3. No painel de navegação esquerdo, em Funções, selecione Chaves da aplicação.

    Isto devolve as chaves de anfitrião, que podem ser utilizadas para aceder a qualquer função na aplicação. Também devolve a chave do sistema, que dá a qualquer pessoa acesso ao nível do administrador a todas as APIs da aplicação de funções.

Também pode praticar menos privilégios ao utilizar a chave apenas para a chave de função específica ao selecionar Teclas de função em Programador na função acionada por HTTP.

Instalar manualmente extensões

As funções de biblioteca de classes C# podem incluir os pacotes NuGet para extensões de enlace diretamente no projeto de biblioteca de classes. Para outros non-.NET idiomas e scriptS C#, a forma recomendada de instalar extensões é através da utilização de pacotes de extensões ou da utilização local do Funções do Azure Core Tools. Se não conseguir utilizar pacotes de extensões e só conseguir trabalhar no portal, terá de utilizar as Ferramentas Avançadas (Kudu) para criar manualmente o ficheiro extensions.csproj diretamente no site. Certifique-se de que remove primeiro o extensionBundle elemento do ficheiro host.json.

Este mesmo processo funciona para qualquer outro ficheiro que precise de adicionar à sua aplicação.

Importante

Sempre que possível, não deve editar ficheiros diretamente na sua aplicação de funções no Azure. Recomendamos que transfira os seus ficheiros de aplicação localmente, utilizando o Core Tools para instalar extensões e outros pacotes, validar as suas alterações e, em seguida, voltar a publicar a sua aplicação com o Core Tools ou um dos outros métodos de implementação suportados.

O editor de Funções incorporado no portal do Azure permite-lhe atualizar os ficheiros de configuração e código de função (function.json) diretamente no portal.

  1. Selecione a sua aplicação de funções e, em funções , selecioneFunções.
  2. Escolha a sua função e selecione Código + teste em Programador.
  3. Selecione o seu ficheiro para editar e selecione Guardar quando terminar.

Os ficheiros na raiz da aplicação, como function.proj ou extensions.csproj, têm de ser criados e editados com as Ferramentas Avançadas (Kudu).

  1. Selecione a sua aplicação de funções e, em seguida, em Ferramentas de desenvolvimento, selecione Ferramentas avançadas>Ir.

  2. Se lhe for pedido, inicie sessão no site do SCM com as suas credenciais do Azure.

  3. No menu da consola de Depuração, selecioneCMD.

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

  5. Atribua um nome ao ficheiro, como extensions.csproj e prima Enter.

  6. Selecione o botão editar junto ao novo ficheiro, adicione ou atualize o código no ficheiro e selecione Guardar.

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

    dotnet build extensions.csproj
    

Funcionalidades da plataforma

As aplicações de funções são executadas e são mantidas pela plataforma Serviço de Aplicações do Azure. Como tal, as suas aplicações de funções têm acesso à maioria das funcionalidades da plataforma de alojamento Web principal do Azure. Ao trabalhar no portal do Azure, o painel esquerdo é onde acede às muitas funcionalidades da plataforma Serviço de Aplicações que pode utilizar nas suas aplicações de funções.

A seguinte matriz indica o suporte de funcionalidades do portal ao alojar o plano e o sistema operativo:

Funcionalidade Plano de consumo Plano Premium Plano dedicado
Ferramentas avançadas (Kudu) Windows: ✔
Linux: X
editor de Serviço de Aplicações Windows: ✔
Linux: X
Windows: ✔
Linux: X
Windows: ✔
Linux: X
Cópias de segurança X X
Consola Windows: linha de comandos
Linux: X
Windows: linha de comandos
Linux: SSH
Windows: linha de comandos
Linux: SSH

O resto deste artigo centra-se nas seguintes funcionalidades no portal que são úteis para as suas aplicações de funções:

Para obter mais informações sobre como trabalhar com definições de Serviço de Aplicações, consulte Configurar definições de Serviço de Aplicações do Azure.

editor de Serviço de Aplicações

O editor de Serviço de Aplicações

O editor de Serviço de Aplicações é um editor avançado no portal que pode utilizar para modificar ficheiros de configuração JSON e ficheiros de código. Escolher esta opção inicia um separador do browser separado com um editor básico. Isto permite-lhe integrar com o repositório Git, executar e depurar código e modificar as definições da aplicação de funções. Este editor fornece um ambiente de desenvolvimento melhorado para as suas funções em comparação com o editor de funções incorporado.

Recomendamos que considere desenvolver as suas funções no seu computador local. Quando desenvolve localmente e publica no Azure, os ficheiros do projeto são só de leitura no portal. Para saber mais, veja Code and test Funções do Azure locally (Código e teste Funções do Azure localmente).

Consola

Consola da aplicação de funções

A consola no portal é uma ferramenta de programador ideal quando prefere interagir com a sua aplicação de funções a partir da linha de comandos. Os comandos comuns incluem a criação e navegação de diretórios e ficheiros, bem como a execução de ficheiros e scripts em lote.

Ao desenvolver localmente, recomendamos que utilize o Funções do Azure Core Tools e a CLI do Azure.

Ferramentas avançadas (Kudu)

Configurar o Kudu

As ferramentas avançadas para Serviço de Aplicações (também conhecidas como Kudu) fornecem acesso a funcionalidades administrativas avançadas da sua aplicação de funções. No Kudu, pode gerir informações do sistema, definições de aplicações, variáveis de ambiente, extensões de site, cabeçalhos HTTP e variáveis de servidor. Também pode iniciar o Kudu ao navegar para o ponto final do SCM da sua aplicação de funções, como https://<myfunctionapp>.scm.azurewebsites.net/

Centro de Implementação

Quando utiliza uma solução de controlo de origem para desenvolver e manter o código das funções, o Centro de Implementação permite-lhe criar e implementar a partir do controlo de origem. O projeto é criado e implementado no Azure quando efetua atualizações. Para obter mais informações, veja Tecnologias de implementação no Funções do Azure.

Partilha de recursos de várias origens

Para impedir a execução de código malicioso no cliente, os browsers modernos bloqueiam pedidos de aplicações Web para recursos em execução num domínio separado. A partilha de recursos de várias origens (CORS) permite que um Access-Control-Allow-Origin cabeçalho declare as origens que têm permissão para chamar pontos finais na sua aplicação de funções.

Portal

Quando configura a lista Origens permitidas para a sua aplicação de funções, o Access-Control-Allow-Origin cabeçalho é automaticamente adicionado a todas as respostas de pontos finais HTTP na sua aplicação de funções.

Configurar a lista CORS da aplicação de funções

Quando o caráter universal (*) é utilizado, todos os outros domínios são ignorados.

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

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

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

Autenticação

Configurar a autenticação para uma aplicação de funções

Quando as funções utilizam um acionador HTTP, pode exigir que as chamadas sejam autenticadas primeiro. Serviço de Aplicações suporta a autenticação e o início de sessão do Azure Active Directory com fornecedores de redes sociais, como o Facebook, a Microsoft e o Twitter. Para obter detalhes sobre como configurar fornecedores de autenticação específicos, veja Descrição geral da autenticação Serviço de Aplicações do Azure.

Passos seguintes