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.
Este artigo mostra como criar um aplicativo do Azure Functions em Aplicativos de Contêiner do Azure, completo 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, pode criar uma gratuitamente. |
| Conta de Armazenamento do Azure | Uma conta de armazenamento de blob para armazenar o estado das suas Azure Functions. |
| Azure Application Insights | Uma instância do Azure Application Insights para coletar dados sobre seu aplicativo de contêiner. |
Criar um aplicativo 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 este procedimento com uma imagem de contêiner personalizada, consulte Criar seu primeiro aplicativo de função em Aplicativos de Contêiner do Azure.
Vá para o portal do Azure e procure 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 seguintes valores.
Em detalhes do projeto:
Propriedade Valor Subscrição Selecione sua assinatura do Azure. Grupo de recursos Selecione Criar novo grupo de recursos, nomeie-o my-aca-functions-group e selecione OK. Nome do aplicativo de contêiner Insira my-aca-functions-app. Ao lado de Otimizar para Azure Functions, marque a caixa de seleção.
Em Ambiente de aplicativos de contêiner, digite:
Propriedade Valor Região Selecione a região mais próxima de si. Ambiente de aplicativos de contêiner Selecione Criar novo ambiente. Na janela de configuração do ambiente, digite:
Propriedade Valor Nome do ambiente Entre em my-aca-functions-environment Redundância entre zonas selecione Desativado. Selecione Criar para salvar seus valores.
Selecione Next: Container para alternar para a seção Container .
Ao lado de Usar imagem de início rápido, deixe esta caixa desmarcada.
Na seção Detalhes do contêiner , insira os seguintes valores.
Propriedade Valor Nome Esta caixa é pré-preenchida com a sua seleção na última secção. Fonte da imagem Selecione Docker Hub ou outros registros Subscrição Selecione a sua subscrição. Tipo de imagem Selecione Público. Servidor de login do Registro Insira mcr.microsoft.com Imagem e marcador Introduza 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. Identidade gerenciada é recomendada.
A variável
AzureWebJobsStorageé uma cadeia de conexão de conta de Armazenamento do Azure necessária para as Funções do Azure. Essa conta de armazenamento armazena logs de execução de funções, 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 informações sobre o desempenho e o uso do Azure Functions. Esse monitoramento ajuda você a controlar as taxas de solicitação, os tempos de resposta, as taxas de falha e outras métricas.
Selecione Next > Ingress para alternar para a seção Ingress e insira os seguintes valores.
Propriedade Valor Entrada Marque a caixa de seleção Habilitado para habilitar a entrada. Tráfego de entrada Selecione Aceitar tráfego de qualquer lugar. Tipo de ingresso Selecione HTTP. Porta de destino Digite 80. Selecione Avaliar + Criar.
Selecione Criar.
Quando a implantação estiver concluída, selecione Ir para o recurso.
Na página Visão geral , selecione o link ao lado de URL do aplicativo para abrir o aplicativo em uma nova guia do navegador.
Anexe
/api/HttpExampleao final do URL.Uma mensagem informando que a "função de disparo HTTP processou uma solicitação" é apresentada no navegador.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa.
- Se não tiver uma, pode criar uma gratuitamente.
- Instale a CLI do Azure.
Criar um aplicativo de funções
Para entrar no Azure a partir da CLI, execute o seguinte comando 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 Aplicativos de Contêiner do Azure para a CLI.
Se receber erros relativos a parâmetros em falta ao executar comandos
az containerappna CLI do Azure ou cmdlets do móduloAz.Appno PowerShell, assegure-se de ter a versão mais recente da extensão Azure Container Apps instalada.az extension add --name containerapp --allow-preview true --upgradeAgora que a extensão ou módulo atual está instalado, registre os
Microsoft.Appnamespaces eMicrosoft.OperationalInsights.az provider register --namespace Microsoft.Appaz provider register --namespace Microsoft.OperationalInsightsCrie 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 Container Apps.
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_SKUAdquirir a Cadeia 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 o Azure Application Insights
az monitor app-insights component create \ --app $APPLICATION_INSIGHTS_NAME \ --location $LOCATION \ --resource-group $RESOURCE_GROUP \ --application-type webAdquirir a cadeia de ligaçã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.fqdnEste comando devolve o URL da aplicação de Funções. Copie este URL e cole-o num navegador da Web.
Crie uma aplicação contentor do Azure Functions com o modo de revisões definido para 'multiple' num cenário 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 cenários de multirevisão, atualize a 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}=50Anexe
/api/HttpExampleao final do URL.Uma mensagem informando que a "função de disparo HTTP processou uma solicitação" é apresentada no navegador.
Gerir funções
Pode gerir as suas funções implementadas dentro das Azure Container Apps usando a CLI do Azure. Os comandos seguintes ajudam-no a listar, inspecionar e interagir com as funções que estão a correr no seu ambiente containerizado.
Observação
Ao lidar com cenários de multirevisão, adiciona o --revision <REVISION_NAME> parâmetro ao teu comando para direcionar uma revisão específica.
Funções relacionadas a listas
Veja todas as funções implementadas na sua aplicação de contentores:
# 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>
Invocações de funções de monitorização
Monitorizar a sua aplicação de funções é essencial para compreender o seu desempenho e diagnosticar problemas. Os comandos seguintes mostram-lhe como recuperar URLs de funções, acionar invocações e visualizar resumos detalhados de telemetria e invocações 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 visualizar os rastros de invocação, obtenha rastros detalhados das invocações de funções.
az containerapp function invocations traces \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h \ --limit 3Consulte um resumo de invocações para rever invocações bem-sucedidas e falhadas.
az containerapp function invocations summary \ --name $CONTAINERAPP_NAME \ --resource-group $RESOURCE_GROUP \ --function-name <FUNCTIONS_APP_NAME> \ --timespan 5h
Gerenciar teclas de função
O Azure Functions utiliza chaves para autenticação e autorização. Pode gerir os seguintes tipos diferentes de chaves:
- Chaves de anfitrião: Acede a qualquer função na aplicação
- Chaves mestres: Fornecer acesso administrativo
- Chaves do sistema: Utilizadas pelos serviços Azure
- Teclas de função: Aceder a funções específicas
Os seguintes comandos mostram-lhe como gerir as chaves do anfitrião. Para executar o mesmo comando para uma aplicação Functions específica, adicione o --function-name <FUNCTIONS_APP_NAME> parâmetro ao seu comando.
Listar chaves
Utilize os seguintes comandos para listar as chaves de nível de host e específicas de função para as suas Azure Functions a correr em Container Apps.
Observação
Mantenha pelo menos uma réplica a correr para que os seguintes comandos de gestão de teclas funcionem.
az containerapp function keys list \
--resource-group $RESOURCE_GROUP \
--name $CONTAINERAPP_NAME \
--key-type hostKey
Mostrar uma tecla específica
Mostre o valor de uma chave específica ao nível do host para a sua aplicação 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
Defina uma chave
Defina uma chave específica ao nível do host para a sua aplicação 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