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.
Este artigo mostra como criar um aplicativo do Azure Functions nos Aplicativos de Contêiner do Azure, com regras de dimensionamento automático pré-configuradas.
Pré-requisitos
| Recurso | Descrição |
|---|---|
| Conta do Azure | Uma conta do Azure com uma assinatura ativa. Se não tiver uma, poderá criar uma gratuitamente. |
| Conta de Armazenamento do Azure | Uma conta de armazenamento de blobs para armazenar o estado de suas Funções do Azure. |
| Azure Application Insights | Uma instância do Azure Application Insights para coletar dados sobre seu aplicativo de contêiner. |
Criar um aplicativo do Functions
As etapas a seguir mostram como usar uma imagem de contêiner de exemplo para criar seu aplicativo de contêiner. Se você quiser usar esse procedimento com uma imagem de contêiner personalizada, consulte Criar seu primeiro aplicativo de funções nos Aplicativos de Contêiner do Azure.
Acesse o portal do Azure e pesquise aplicativos de contêiner na barra de pesquisa.
Selecione Aplicativos de Contêiner.
Selecione Criar.
Selecionar Aplicativo de Contêiner
Na seção Noções básicas, insira os valores a seguir.
Em Detalhes do projeto:
Propriedade Valor Subscrição Selecione sua assinatura do Azure. Grupo de recursos Selecione Criar novo grupo de recursos, nomeie-o como my-aca-functions-group e selecione OK. Nome do aplicativo de contêiner Acesse my-aca-functions-app. Marque a caixa de seleção ao lado de Otimizar para o Azure Functions.
Em Ambiente de Aplicativos de Contêiner, insira:
Propriedade Valor Região Selecione a região mais próxima de você. Ambiente de Aplicativos de Contêiner Selecione Criar novo ambiente. Na janela de configuração do ambiente, insira:
Propriedade Valor Nome do ambiente Insira my-aca-functions-environment Redundância de zona Selecione Desabilitado. Selecione Criar para salvar seus valores.
Selecione Avançar: Contêiner para alternar para a seção Contêiner .
Ao lado de Usar a imagem de início rápido, deixe esta caixa desmarcada.
Na seção Detalhes do contêiner , insira os valores a seguir.
Propriedade Valor Nome Esta caixa está pré-preenchida com sua seleção na última seção. Fonte da imagem Selecione o Hub do Docker ou outros registros Subscrição Selecione sua assinatura. Tipo de Imagem Selecione Público. Servidor de logon do registro Insira mcr.microsoft.com Imagem e marca Insira k8se/quickstart-functions:latest Em Variáveis de ambiente, insira valores para as seguintes variáveis:
AzureWebJobsStorage-
APPINSIGHTS_INSTRUMENTATIONKEYouAPPLICATIONINSIGHTS_CONNECTION_STRING
Insira valores de identidade gerenciada ou cadeia de conexão para essas variáveis. A Identidade Gerenciada é recomendada.
A variável
AzureWebJobsStorageé uma cadeia de conexão obrigatória da conta de Armazenamento do Azure para Azure Functions. Essa conta de armazenamento armazena logs de execução de função, gerencia gatilhos e associações e mantém o estado para funções duráveis.O Application Insights é um serviço de monitoramento e diagnóstico que fornece insights sobre o desempenho e o uso do Azure Functions. Esse monitoramento ajuda você a acompanhar as taxas de solicitação, os tempos de resposta, as taxas de falha e outras métricas.
Selecione Próximo > Ingress para alternar para a seção Ingress e insira os valores a seguir.
Propriedade Valor Entrada Selecione a caixa de seleção Habilitada para habilitar a entrada. Tráfego de entrada Selecione Aceitar tráfego de qualquer lugar. Tipo de entrada Selecione HTTP. Porta de destino Insira 80. Selecione Examinar + criar.
Selecione Criar.
Após a conclusão da implantação, selecione Ir para o recurso.
Na página Visão geral , selecione o link ao lado da URL do Aplicativo para abrir o aplicativo em uma nova guia do navegador.
Acrescente
/api/HttpExampleao final da URL.Uma mensagem informando que "a função de gatilho HTTP processou uma solicitação" é retornada no navegador.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa.
- Se não tiver uma, poderá criar uma gratuitamente.
- Instale a CLI do Azure.
Criar um aplicativo de funções
Para entrar no Azure usando a CLIl, execute o comando a seguir e siga os prompts para concluir o processo de autenticação.
Inicie sessão no Azure.
az loginPara garantir que você esteja executando a versão mais recente da CLI, execute o comando “upgrade”.
az upgradeInstale ou atualize a extensão do Azure Container Apps para a CLI.
Se você receber erros sobre parâmetros ausentes ao executar comandos
az containerappna CLI do Azure ou cmdlets do móduloAz.Appno PowerShell, verifique se está usando a última versão da extensão Aplicativos de Contêiner do Azure instalada.az extension add --name containerapp --allow-preview true --upgradeAgora que a extensão ou módulo atual está instalado, registre os namespaces
Microsoft.AppeMicrosoft.OperationalInsights.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsightsCriar variáveis de ambiente.
RESOURCE_GROUP_NAME="my-aca-functions-group" CONTAINER_APP_NAME="my-aca-functions-app" ENVIRONMENT_NAME="my-aca-functions-environment" LOCATION="westus" STORAGE_ACCOUNT_NAME="storage-account-name" STORAGE_ACCOUNT_SKU="storage-account-sku" APPLICATION_INSIGHTS_NAME="application-insights-name"Crie um grupo de recursos.
az group create \ --name $RESOURCE_GROUP_NAME \ --location $LOCATION \ --output noneCrie o ambiente dos Aplicativos de Contêiner.
az containerapp env create \ --name $ENVIRONMENT_NAME \ --resource-group $RESOURCE_GROUP_NAME \ --location $LOCATION \ --output noneCriar a conta de armazenamento
az storage account create \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --location $LOCATION \ --sku $STORAGE_ACCOUNT_SKUObter string de conexão da conta de armazenamento
$STORAGE_ACCOUNT_CONNECTION_STRING = az storage account show-connection-string \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --query connectionString \ --output tsvCriar Application Insights no Azure
az monitor app-insights component create \ --app $APPLICATION_INSIGHTS_NAME \ --location $LOCATION \ --resource-group $RESOURCE_GROUP \ --application-type webAdquirir string de conexão do Application Insights
$APPLICATION_INSIGHTS_CONNECTION_STRING = az monitor app-insights component show \ --app $APPLICATION_INSIGHTS_NAME \ --resource-group $RESOURCE_GROUP \ --query connectionString \ --output tsvCrie um aplicativo de contêiner do Azure Functions.
az containerapp create \ --resource-group $RESOURCE_GROUP_NAME \ --name $CONTAINER_APP_NAME \ --environment $ENVIRONMENT_NAME \ --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0 \ --ingress external \ --target-port 80 \ --kind functionapp \ --query properties.outputs.fqdnEsse comando retorna a URL do aplicativo functions. Copie essa URL e cole-a em um navegador da Web.
Criar um aplicativo de contêiner do Azure Functions com --revisions-mode multiple para cenários de múltiplas revisões
az containerapp create \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --environment $CONTAINERAPPS_ENVIRONMENT \ --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0 \ --target-port 80 \ --ingress external \ --kind functionapp \ --workload-profile-name $WORKLOAD_PROFILE_NAME \ --env-vars AzureWebJobsStorage="$STORAGE_ACCOUNT_CONNECTION_STRING" APPLICATIONINSIGHTS_CONNECTION_STRING="$APPLICATION_INSIGHTS_CONNECTION_STRING"Para o cenário de multirrevisão, atualize o ContainerApp e divida o tráfego
az containerapp update \ --resource-group $RESOURCE_GROUP \ --name $CONTAINERAPP_NAME \ --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:latest az containerapp ingress traffic set -resource-group \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --revision-weight {revision1_name}=50 \ --revision-weight {revision2_name}=50Acrescente
/api/HttpExampleao final da URL.Uma mensagem informando que "a função de gatilho HTTP processou uma solicitação" é retornada no navegador.
Gerenciar funções
Você pode gerenciar suas funções implantadas nos Aplicativos de Contêiner do Azure usando a CLI do Azure. Os comandos a seguir ajudam você a listar, inspecionar e interagir com as funções em execução em seu ambiente em contêineres.
Observação
Ao lidar com cenários de multirevisão, adicione o parâmetro --revision <REVISION_NAME> ao seu comando para direcionar uma revisão específica.
Listar funções
Exiba todas as funções implantadas em seu aplicativo de contêiner:
# List all functions
az containerapp function list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME
Mostrar detalhes da função
Obtenha informações detalhadas sobre uma função específica:
az containerapp function show \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--function-name <FUNCTIONS_APP_NAME>
Monitorar invocações de função
Monitorar seu aplicativo de funções é essencial para entender seu desempenho e diagnosticar problemas. Os comandos a seguir mostram como recuperar URLs de função, disparar invocações e exibir resumos detalhados de telemetria e invocação usando a CLI do Azure.
Certifique-se de invocar a função algumas vezes, curl -X POST "fqdn/api/HttpExample" antes de chamar os traces
Para exibir rastreamentos de invocação, obtenha rastreamentos detalhados de invocações de função.
az containerapp function invocations traces \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h \ --limit 3Visualizar um resumo da invocação para examinar invocações bem-sucedidas e falhas.
az containerapp function invocations summary \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h
Gerenciar chaves de função
O Azure Functions usa chaves para autenticação e autorização. Você pode gerenciar os seguintes tipos diferentes de chaves:
- Chaves de host: acessar qualquer função no aplicativo
- Chaves mestras: fornecer acesso administrativo
- Chaves do sistema: usadas pelos serviços do Azure
- Chaves de função: acessar funções específicas
Os comandos a seguir mostram como gerenciar chaves para o host. Para executar o mesmo comando para um aplicativo específico do Functions, adicione o --function-name <FUNCTIONS_APP_NAME> parâmetro ao seu comando.
Listar chaves
Use os comandos a seguir para listar chaves específicas de nível de host e de função para o Azure Functions em execução nos Aplicativos de Contêiner.
Observação
Mantenha um mínimo de uma réplica em execução para que os comandos de gerenciamento de chaves a seguir funcionem.
az containerapp function keys list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-type hostKey
Mostrar uma chave específica
Mostre o valor de uma chave de nível de host específica para seu aplicativo de funções com o seguinte comando:
az containerapp function keys show \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-name <KEY_NAME> \
--key-type hostKey
Definir uma chave
Defina uma chave de nível de host específica para seu aplicativo de funções com o seguinte comando:
az containerapp function keys set \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-name <KEY_NAME> \
--key-value <KEY_VALUE> \
--key-type hostKey