Referência de configurações de aplicativo para Azure Functions
As configurações de aplicativo em um aplicativo de funções contêm opções de configuração que afetam todas as funções do aplicativo de funções. Essas configurações são acessadas como variáveis de ambiente. Este artigo lista as configurações de aplicativo disponíveis nos aplicativos de funções.
Há várias maneiras de adicionar, atualizar e excluir configurações do aplicativo de funções:
As alterações nas configurações do aplicativo de funções exigem que o seu aplicativo de funções seja reiniciado.
Neste artigo, valores de cadeia de conexão de exemplo são truncados para legibilidade.
Considerações sobre a configuração do aplicativo
Ao usar as configurações do aplicativo, você deve estar ciente das seguintes considerações:
As alterações nas configurações do aplicativo de funções exigem que o seu aplicativo de funções seja reiniciado.
Em nomes de configuração, sublinhado duplo (
__
) e ponto e vírgula (:
) são considerados valores reservados. Os sublinhados duplos são interpretados como delimitadores hierárquicos no Windows e no Linux, e os dois-pontos são interpretados da mesma maneira apenas no Linux. Por exemplo, a configuraçãoAzureFunctionsWebHost__hostid=somehost_123456
seria interpretada como o seguinte objeto JSON:"AzureFunctionsWebHost": { "hostid": "somehost_123456" }
Neste artigo, apenas sublinhados duplos são usados, pois eles têm suporte em ambos os sistemas operacionais.
Quando o Functions é executado localmente, as configurações do aplicativo são especificadas na coleção
Values
em local.settings.json.Há outras opções de configuração do aplicativo de funções no arquivo host.json e no arquivo local.settings.json.
Você pode usar configurações de aplicativo para substituir os valores de configuração de host.json sem precisar alterar o arquivo host.json. Isso é útil para cenários em que você precisa configurar ou modificar configurações específicas de host.json para um ambiente específico. Isso também permite que você altere configurações de host.json sem precisar republicar o projeto. Para saber mais, confira o artigo de referência de host.json.
Este artigo documenta as configurações mais relevantes para seus aplicativos de funções. Como o Azure Functions é executado no Serviço de Aplicativo, outras configurações de aplicativo também podem ter suporte. Para mais informações, confira Variáveis de ambiente e configurações de aplicativo no Serviço de Aplicativo do Azure.
Alguns cenários também exigem que você trabalhe com configurações documentadas nas configurações de site do Serviço de Aplicativo.
Alterar qualquer configuração de aplicativo do Serviço de Aplicativosomente leitura pode colocar seu aplicativo de funções em um estado sem resposta.
Tome cuidado ao atualizar as configurações de aplicativo usando APIs REST, incluindo modelos do ARM. Como essas APIs substituem as configurações de aplicativo existentes, você deve incluir todas as configurações existentes ao adicionar ou modificar configurações usando APIs REST ou modelos do ARM. Quando possível, use a CLI do Azure ou o Azure PowerShell para trabalhar programaticamente com as configurações do aplicativo. Para obter mais informações, confira Trabalhar com configurações de aplicativo.
APPINSIGHTS_INSTRUMENTATIONKEY
A chave de instrumentação do Application Insights. Não use APPINSIGHTS_INSTRUMENTATIONKEY
e APPLICATIONINSIGHTS_CONNECTION_STRING
. Quando possível, use APPLICATIONINSIGHTS_CONNECTION_STRING
. Quando o Application Insights é executado em uma nuvem soberana, você deve usar APPLICATIONINSIGHTS_CONNECTION_STRING
. Para saber mais, confira Como configurar o monitoramento para o Azure Functions.
Chave | Valor de exemplo |
---|---|
APPINSIGHTS_INSTRUMENTATIONKEY | 55555555-af77-484b-9032-64f83bb83bb |
Não use APPINSIGHTS_INSTRUMENTATIONKEY
e APPLICATIONINSIGHTS_CONNECTION_STRING
. Recomenda-se o uso do APPLICATIONINSIGHTS_CONNECTION_STRING
.
Observação
Em 31 de março de 31, 2025, o suporte à ingestão de chave de instrumentação será encerrado. A ingestão de chave de instrumentação continuará funcionando, mas não forneceremos mais atualizações ou suporte para o recurso. Faça a transição para cadeias de conexão para aproveitar as novas funcionalidades.
APPLICATIONINSIGHTS_CONNECTION_STRING
A cadeia de conexão do Application Insights. Não use APPINSIGHTS_INSTRUMENTATIONKEY
e APPLICATIONINSIGHTS_CONNECTION_STRING
. Embora o uso do APPLICATIONINSIGHTS_CONNECTION_STRING
seja recomendado em todos os casos, ele é necessário nos seguintes casos:
- Quando o aplicativo de funções requer as personalizações adicionadas com suporte usando a cadeia de conexão.
- Quando a instância do Application Insights é executada em uma nuvem soberana, que requer um ponto de extremidade personalizado.
Para saber mais, confira Cadeias de conexão.
Chave | Valor de exemplo |
---|---|
APPLICATIONINSIGHTS_CONNECTION_STRING | InstrumentationKey=... |
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL
Por padrão, os Proxies de funções usam um atalho para enviar chamadas à API de proxies diretamente para funções no mesmo aplicativo de funções. Esse atalho é usado em vez de criar uma solicitação HTTP. Essa configuração permite que você desabilite esse comportamento do atalho.
Chave | Valor | Descrição |
---|---|---|
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL | true |
Chamadas com uma URL de back-end apontando para uma função no aplicativo de funções local não são enviadas diretamente para a função. Em vez disso, as solicitações são direcionadas de volta para o front-end HTTP para o aplicativo de funções. |
AZURE_FUNCTION_PROXY_DISABLE_LOCAL_CALL | false |
Chamadas com uma URL de back-end apontando para uma função no aplicativo de funções local são encaminhadas diretamente para essa função. false é o valor padrão. |
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES
Essa configuração controla se caracteres %2F
são decodificados como barras nos parâmetros de rota quando inseridos na URL de back-end.
Chave | Valor | Descrição |
---|---|---|
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES | true |
Parâmetros de rota com barras codificadas são decodificados. |
AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES | false |
Todos os parâmetros de rota são passados em conjunto e inalterados, que é o comportamento padrão. |
Por exemplo, considere o arquivo proxies.json para um aplicativo de funções no domínio myfunction.com
.
{
"$schema": "http://json.schemastore.org/proxies",
"proxies": {
"root": {
"matchCondition": {
"route": "/{*all}"
},
"backendUri": "example.com/{all}"
}
}
}
Quando AZURE_FUNCTION_PROXY_BACKEND_URL_DECODE_SLASHES
está definido como true
, a URL example.com/api%2ftest
é resolvida para example.com/api/test
. Por padrão, a URL permanece inalterada como example.com/test%2fapi
. Para saber mais, confira Proxies de funções.
AZURE_FUNCTIONS_ENVIRONMENT
Na versão 2.x e em versões posteriores do runtime do Functions, configura o comportamento do aplicativo com base no ambiente de runtime. Esse valor é lido durante a inicialização e pode ser definido como qualquer valor. Somente os valores de Development
, Staging
e Production
são respeitados pelo runtime. Quando essa configuração de aplicativo não estiver presente durante a execução no Azure, o ambiente será considerado Production
. Use essa configuração em vez de ASPNETCORE_ENVIRONMENT
se precisar alterar o ambiente de runtime no Azure para algo diferente de Production
. O Azure Functions Core Tools definiu AZURE_FUNCTIONS_ENVIRONMENT
como Development
quando executado em um computador local, e essa configuração não pode ser substituído no arquivo local.settings.json. Para saber mais, confira Classe e métodos de inicialização baseados em ambiente.
AzureFunctionsJobHost__*
Na versão 2.x e em versões posteriores do runtime do Functions, as configurações de aplicativo podem substituir as configurações de host.json no ambiente atual. Essas substituições são expressas como configurações de aplicativo chamadas AzureFunctionsJobHost__path__to__setting
. Para saber mais, confira Substituir valores de host.json.
AzureFunctionsWebHost__hostid
Define a ID do host para um determinado aplicativo de funções, que deve ser uma ID exclusiva. Essa configuração substitui o valor da ID do host gerado automaticamente para seu aplicativo. Use essa configuração somente quando precisar evitar colisões de ID de host entre aplicativos de funções que compartilham a mesma conta de armazenamento.
Uma ID de host deve atender aos seguintes requisitos:
- Ter entre 1 e 32 caracteres
- Ela pode conter apenas letras minúsculas, números e traços
- Não iniciar ou terminar com um traço
- Não pode conter traços consecutivos
Uma maneira fácil de gerar uma ID é pegar um GUID, remover os traços e torná-lo minúscula, como convertendo o GUID 1835D7B5-5C98-4790-815D-072CC94C6F71
no valor 1835d7b55c984790815d072cc94c6f71
.
Chave | Valor de exemplo |
---|---|
AzureFunctionsWebHost__hostid | myuniquefunctionappname123456789 |
Para obter mais informações, consulte Considerações sobre a ID do host.
AzureWebJobsDashboard
Cadeia de conexão da conta de armazenamento opcional para armazenar logs e exibi-los na guia Monitor do portal. Essa configuração é válida apenas para aplicativos que têm como destino a versão 1.x do runtime do Azure Functions. A conta de armazenamento deve ser de uso geral, com suporte para blobs, filas e tabelas. Para saber mais, confira Requisitos de uma conta de armazenamento.
Chave | Valor de exemplo |
---|---|
AzureWebJobsDashboard | DefaultEndpointsProtocol=https;AccountName=... |
Observação
Para ter um melhor desempenho e uma melhor experiência, o runtime versão 2.x e posteriores usam APPINSIGHTS_INSTRUMENTATIONKEY e o App Insights para monitoramento em vez de AzureWebJobsDashboard
.
AzureWebJobsDisableHomepage
Um valor de true
desabilita a página de aterrissagem padrão mostrada para a URL raiz de um aplicativo de funções. O valor padrão é false
.
Chave | Valor de exemplo |
---|---|
AzureWebJobsDisableHomepage | true |
Quando essa configuração de aplicativo é omitida ou definida como false
, uma página semelhante ao exemplo a seguir é exibida na resposta à URL <functionappname>.azurewebsites.net
.
AzureWebJobsDotNetReleaseCompilation
true
significa usar o modo de versão durante a compilação do código .NET; false
significa usar o modo de depuração. O padrão é true
.
Chave | Valor de exemplo |
---|---|
AzureWebJobsDotNetReleaseCompilation | true |
AzureWebJobsFeatureFlags
Uma lista delimitada por vírgulas de recursos beta a habilitar. Os recursos beta habilitados por esses sinalizadores não estão prontos para produção, mas podem ser habilitados para uso experimental antes de serem lançados.
Chave | Valor de exemplo |
---|---|
AzureWebJobsFeatureFlags | feature1,feature2,EnableProxies |
Adicione EnableProxies
a esta lista para reabilitar proxies na versão 4.x do runtime do Functions ao planejar a migração para o Gerenciamento de API do Azure. Para obter mais informações, consulte Reabilitar proxies no Functions v4.x.
AzureWebJobsKubernetesSecretName
Indica o recurso de Segredos do Kubernetes usado para armazenar chaves. Compatível apenas quando em execução no Kubernetes. Essa configuração requer que você defina AzureWebJobsSecretStorageType
como kubernetes
. Quando AzureWebJobsKubernetesSecretName
não estiver definido, o repositório será considerado somente leitura. Nesse caso, os valores devem ser gerados antes da implantação. O Azure Functions Core Tools gera os valores automaticamente durante a implantação no Kubernetes.
Chave | Valor de exemplo |
---|---|
AzureWebJobsKubernetesSecretName | <SECRETS_RESOURCE> |
Para saber mais, confira Repositórios de segredos.
AzureWebJobsSecretStorageKeyVaultClientId
A ID do cliente da identidade gerenciada atribuída pelo usuário ou o registro do aplicativo usado para acessar o cofre em que as chaves são armazenadas. Essa configuração requer que você defina AzureWebJobsSecretStorageType
como keyvault
. Com suporte na versão 4.x e em versões posteriores do Functions Runtime.
Chave | Valor de exemplo |
---|---|
AzureWebJobsSecretStorageKeyVaultClientId | <CLIENT_ID> |
Para saber mais, confira Repositórios de segredos.
AzureWebJobsSecretStorageKeyVaultClientSecret
O segredo para a ID do cliente da identidade gerenciada atribuída pelo usuário ou o registro do aplicativo usado para acessar o cofre em que as chaves são armazenadas. Essa configuração requer que você defina AzureWebJobsSecretStorageType
como keyvault
. Com suporte na versão 4.x e em versões posteriores do Functions Runtime.
Chave | Valor de exemplo |
---|---|
AzureWebJobsSecretStorageKeyVaultClientSecret | <CLIENT_SECRET> |
Para saber mais, confira Repositórios de segredos.
AzureWebJobsSecretStorageKeyVaultName
O nome de uma instância do cofre de chaves usada para armazenar as chaves. Só há suporte para essa configuração na versão 3.x do Functions Runtime. Para a versão 4.x, use AzureWebJobsSecretStorageKeyVaultUri
. Essa configuração requer que você defina AzureWebJobsSecretStorageType
como keyvault
.
O cofre deve ter uma política de acesso correspondente à identidade gerenciada atribuída pelo sistema do recurso de hospedagem. A política de acesso deve conceder à identidade as seguintes permissões de segredo: Get
, Set
, List
e Delete
.
Quando suas funções são executadas localmente, a identidade do desenvolvedor é usada e as configurações devem estar no local.settings.json.
Chave | Valor de exemplo |
---|---|
AzureWebJobsSecretStorageKeyVaultName | <VAULT_NAME> |
Para saber mais, confira Repositórios de segredos.
AzureWebJobsSecretStorageKeyVaultTenantId
A ID do locatário do registro do aplicativo usada para acessar o cofre em que as chaves são armazenadas. Essa configuração requer que você defina AzureWebJobsSecretStorageType
como keyvault
. Com suporte na versão 4.x e em versões posteriores do Functions Runtime. Para saber mais, confira Repositórios de segredos.
Chave | Valor de exemplo |
---|---|
AzureWebJobsSecretStorageKeyVaultTenantId | <TENANT_ID> |
AzureWebJobsSecretStorageKeyVaultUri
O URI de uma instância do cofre de chaves usada para armazenar as chaves. Com suporte na versão 4.x e em versões posteriores do Functions Runtime. Essa é a configuração recomendada para usar uma instância do cofre de chaves para armazenamento de chaves. Essa configuração requer que você defina AzureWebJobsSecretStorageType
como keyvault
.
O valor AzureWebJobsSecretStorageKeyVaultUri
deve ser o valor completo do AzureWebJobsSecretStorageKeyVaultUri
exibido na guia Visão geral do Key Vault, incluindo .
O cofre deve ter uma política de acesso correspondente à identidade gerenciada atribuída pelo sistema do recurso de hospedagem. A política de acesso deve conceder à identidade as seguintes permissões de segredo: Get
, Set
, List
e Delete
.
Quando suas funções são executadas localmente, a identidade do desenvolvedor é usada e as configurações devem estar no local.settings.json.
Chave | Valor de exemplo |
---|---|
AzureWebJobsSecretStorageKeyVaultUri | https://<VAULT_NAME>.vault.azure.net |
Para saber mais, confira Usar as referências do Key Vault para o Azure Functions.
AzureWebJobsSecretStorageSas
Uma URL de SAS do Armazenamento de Blobs para uma segunda conta de armazenamento usada para o armazenamento de chaves. Por padrão, o Functions usa a conta definida em AzureWebJobsStorage
. Ao usar essa opção de armazenamento de segredos, verifique se AzureWebJobsSecretStorageType
não está definido explicitamente ou definido como blob
. Para saber mais, confira Repositórios de segredos.
Chave | Valor de exemplo |
---|---|
AzureWebJobsSecretStorageSas | <BLOB_SAS_URL> |
AzureWebJobsSecretStorageType
Especifica o repositório ou o provedor a ser usado para armazenar chaves. As chaves são criptografadas antes de serem armazenadas por meio de um segredo exclusivo do aplicativo de funções.
Chave | Valor | Descrição |
---|---|---|
AzureWebJobsSecretStorageType | blob |
As chaves são armazenadas em um contêiner do armazenamento de blobs na conta fornecida pela configuração AzureWebJobsStorage . O armazenamento de blob é o comportamento padrão quando AzureWebJobsSecretStorageType não está definido.Para especificar outra conta de armazenamento, use a configuração AzureWebJobsSecretStorageSas para indicar a URL de SAS de uma segunda conta de armazenamento. |
AzureWebJobsSecretStorageType | files |
As chaves são persistentes no sistema de arquivos. Esse é o comportamento padrão para o Functions v1.x. |
AzureWebJobsSecretStorageType | keyvault |
As chaves são armazenadas em uma instância do cofre de chaves definida por AzureWebJobsSecretStorageKeyVaultName . |
AzureWebJobsSecretStorageType | kubernetes |
Com suporte apenas ao executar o tempo de execução do Functions em Kubernetes. Quando AzureWebJobsKubernetesSecretName não estiver definido, o repositório será considerado somente leitura. Nesse caso, os valores devem ser gerados antes da implantação. O Azure Functions Core Tools gera os valores automaticamente durante a implantação no Kubernetes. |
Para saber mais, confira Repositórios de segredos.
AzureWebJobsStorage
O runtime do Azure Functions usa essa cadeia de conexão da conta armazenamento para a operação normal. Alguns usos dessa conta de armazenamento incluem gerenciamento de chave, gerenciamento de gatilho de temporizador e pontos de verificação dos Hubs de Eventos. A conta de armazenamento deve ser de uso geral, com suporte para blobs, filas e tabelas. Consulte Conta de armazenamento e Requisitos da conta de armazenamento.
Chave | Valor de exemplo |
---|---|
AzureWebJobsStorage | DefaultEndpointsProtocol=https;AccountName=... |
AzureWebJobs_TypeScriptPath
Caminho para o compilador usado para TypeScript. Permite substituir o padrão se necessário.
Chave | Valor de exemplo |
---|---|
AzureWebJobs_TypeScriptPath | %HOME%\typescript |
DOCKER_SHM_SIZE
Define o tamanho (em bytes) da memória compartilhada quando o trabalhador do Python estiver usando memória compartilhada. Para saber mais, confira Memória compartilhada.
Chave | Valor de exemplo |
---|---|
DOCKER_SHM_SIZE | 268435456 |
O valor acima define um tamanho de memória compartilhada de ~256 MB.
Exige que FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED
seja definido como 1
.
ENABLE_ORYX_BUILD
Indica se o sistema de build Oryx é usado durante a implantação. ENABLE_ORYX_BUILD
deve ser definido como true
ao fazer implantações de build remoto no Linux. Para obter mais informações, confira Build remoto no Linux.
Chave | Valor de exemplo |
---|---|
ENABLE_ORYX_BUILD | true |
FUNCTION_APP_EDIT_MODE
Determina se a edição no portal do Azure está habilitada. Os valores válidos são readwrite
e readonly
.
Chave | Valor de exemplo |
---|---|
FUNCTION_APP_EDIT_MODE | readonly |
VERSION_FUNCTIONS_EXTENSION
A versão do runtime do Functions que hospeda seu aplicativo de funções. Um til (~
) com a versão principal significa usar a versão mais recente da versão principal (por exemplo, ~3
). Quando novas versões da mesma versão principal estão disponíveis, elas são instaladas automaticamente no aplicativo de funções. Para fixar o aplicativo a uma versão específica, use o número de versão completo (por exemplo, 3.0.12345
). O padrão é ~3
. Um valor de pinos ~1
seu aplicativo para a versão 1.x do runtime. Para obter mais informações, consulte Visão geral de versões do Azure Functions runtime. Um valor de ~4
significa que o aplicativo é executado na versão 4.x do runtime, que dá suporte ao .NET 6.0.
Chave | Valor de exemplo |
---|---|
VERSION_FUNCTIONS_EXTENSION | ~4 |
Há suporte para os seguintes valores de versão de runtime principal:
Valor | Destino de runtime | Comentário |
---|---|---|
~4 |
4.x | Recomendadas |
~3 |
3.x | O suporte encerra em 13 de dezembro de 2022 |
~2 |
2. x | Não é mais compatível |
~1 |
1.x | Com suporte |
FUNCTIONS_V2_COMPATIBILITY_MODE
Essa configuração permite que o aplicativo de funções seja executado em um modo compatível com a versão 2.x no runtime da versão 3.x. Use essa configuração somente se encontrar problemas ao atualizar seu aplicativo de funções da versão 2.x para a 3.x do runtime.
Importante
Essa configuração tem a finalidade de ser apenas uma solução alternativa de curto prazo enquanto você atualiza o aplicativo para ser executado corretamente na versão 3.x. Haverá suporte para essa configuração enquanto o runtime 2.x tiver suporte. Se você encontrar problemas que impeçam que o aplicativo seja executado na versão 3.x sem usar essa configuração, informe seu problema.
Defina também FUNCTIONS_EXTENSION_VERSION como ~3
.
Chave | Valor de exemplo |
---|---|
FUNCTIONS_V2_COMPATIBILITY_MODE | true |
FUNCTIONS_REQUEST_BODY_SIZE_LIMIT
Substitui o limite padrão no tamanho do corpo das solicitações enviadas aos pontos de extremidade HTTP. O valor é fornecido em bytes, com um tamanho máximo de solicitação padrão de 104857600 bytes.
Chave | Valor de exemplo |
---|---|
FUNCTIONS_REQUEST_BODY_SIZE_LIMIT | 250000000 |
FUNCTIONS_WORKER_PROCESS_COUNT
Especifica o número máximo de processos de trabalho de linguagem, com um valor padrão de 1
. O valor máximo permitido é de 10
. As invocações de função são distribuídas de maneira uniforme entre os processos de trabalho de linguagem. Os processos de trabalho de linguagem são gerados a cada 10 segundos até que a contagem definida por FUNCTIONS_WORKER_PROCESS_COUNT seja atingida. O uso de vários processos de trabalho de linguagem não é o mesmo que acolocação em escala. Considere usar essa configuração quando a carga de trabalho tiver uma combinação de invocações associadas à CPU e à E/S. Essa configuração se aplica a todos os runtimes de linguagem, exceto o .NET em execução em processo (dotnet
).
Chave | Valor de exemplo |
---|---|
FUNCTIONS_WORKER_PROCESS_COUNT | 2 |
RUNTIME_FUNCTIONS_WORKER
O runtime do trabalho de linguagem deve ser carregado no aplicativo de funções. Isso corresponde à linguagem que está sendo usada em seu aplicativo (por exemplo, dotnet
). Começando na versão 2.x do runtime do Azure Functions, um determinado aplicativo de funções só pode dar suporte a uma linguagem.
Chave | Valor de exemplo |
---|---|
RUNTIME_FUNCTIONS_WORKER | node |
Valores válidos:
Valor | Idioma |
---|---|
dotnet |
C# (biblioteca de classes) C# (script) |
dotnet-isolated |
C# (processo de trabalho isolado) |
java |
Java |
node |
JavaScript TypeScript |
powershell |
PowerShell |
python |
Python |
FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED
Essa configuração permite que o trabalhador do Python use a memória compartilhada para melhorar a taxa de transferência. Habilite a memória compartilhada quando seu aplicativo de funções do Python estiver atingindo gargalos de memória.
Chave | Valor de exemplo |
---|---|
FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED | 1 |
Com essa configuração habilitada, você pode usar a configuração DOCKER_SHM_SIZE para definir o tamanho da memória compartilhada. Para saber mais, confira Memória compartilhada.
JAVA_OPTS
Usado para personalizar a JVM (máquina virtual Java) usada para executar as funções Java durante a execução em um plano premium ou plano dedicado. Ao executar em um plano de consumo, em vez disso, use languageWorkers__java__arguments
. Para obter mais informações, confira Personalizar a JVM.
languageWorkers__java__arguments
Usado para personalizar a JVM (máquina virtual Java) usada para executar suas funções Java durante a execução em um plano de consumo. Essa configuração aumenta os tempos de inicialização a frio para funções Java em execução em um plano de consumo. Para um plano premium ou dedicado, em vez disso, use JAVA_OPTS
. Para obter mais informações, confira Personalizar a JVM.
MDMaxBackgroundUpgradePeriod
Controla o período de atualização em segundo plano das dependências gerenciadas para aplicativos de funções do PowerShell, com um valor padrão de 7.00:00:00
(semanal).
Cada processo de trabalho do PowerShell inicia a verificação de atualizações de módulo na Galeria do PowerShell no início do processo e a cada MDMaxBackgroundUpgradePeriod
depois disso. Quando uma nova versão de módulo está disponível no Galeria do PowerShell, ela é instalada no sistema de arquivos e disponibilizada para os trabalhos do PowerShell. Diminuir esse valor permite que seu aplicativo de funções obtenha versões mais recentes do módulo antecipadamente, mas também aumenta o uso de recursos do aplicativo (E/S de rede, CPU, armazenamento). Aumentar esse valor diminui o uso de recursos do aplicativo, mas também pode atrasar a entrega de novas versões de módulo ao seu aplicativo.
Chave | Valor de exemplo |
---|---|
MDMaxBackgroundUpgradePeriod | 7.00:00:00 |
Para saber mais, confira Gerenciamento de dependências.
MDNewSnapshotCheckPeriod
Especifica com que frequência cada trabalho do PowerShell verifica se as atualizações de dependência gerenciada foram instaladas. A frequência padrão é 01:00:00
(por hora).
Depois que novas versões de módulo são instaladas no sistema de arquivos, todos os processos de trabalho do PowerShell devem ser reiniciados. Reiniciar os trabalhos do PowerShell afeta a disponibilidade do aplicativo, pois a execução da função atual pode ser interrompida. Até que todos os processos de trabalho do PowerShell sejam reiniciados, as invocações de função podem usar as versões de módulo antigas ou novas. A reinicialização de todos os trabalhos do PowerShell é concluída em MDNewSnapshotCheckPeriod
.
A cada MDNewSnapshotCheckPeriod
, a função de trabalho do PowerShell verifica se as atualizações de dependência gerenciada foram ou não instaladas. Quando as atualizações são instaladas, uma reinicialização é iniciada. Aumentar esse valor diminui a frequência de interrupções devido a reinicializações. No entanto, o aumento também pode aumentar o tempo durante o qual as invocações de função podem usar as versões antigas ou novas do módulo, não determinísticamente.
Chave | Valor de exemplo |
---|---|
MDNewSnapshotCheckPeriod | 01:00:00 |
Para saber mais, confira Gerenciamento de dependências.
MDMinBackgroundUpgradePeriod
O período após uma verificação anterior de atualização de dependência gerenciada antes de outra verificação de atualização ser iniciada, com um padrão de 1.00:00:00
(diariamente).
Para evitar atualizações excessivas de módulo em reinicializações de trabalho frequentes, a verificação de atualizações de módulo não será executada quando algum trabalho já tiver iniciado essa verificação no último MDMinBackgroundUpgradePeriod
.
Chave | Valor de exemplo |
---|---|
MDMinBackgroundUpgradePeriod | 1.00:00:00 |
Para saber mais, confira Gerenciamento de dependências.
PIP_INDEX_URL
Essa configuração permite substituir a URL base do Índice de Pacote do Python, que por padrão é https://pypi.org/simple
. Use essa configuração quando precisar executar um build remoto usando dependências personalizadas. Essas dependências personalizadas encontradas em um repositório de índice de pacote em conformidade com o PEP 503 (a API de repositório simples) ou em um diretório local que siga o mesmo formato.
Chave | Valor de exemplo |
---|---|
PIP_INDEX_URL | http://my.custom.package.repo/simple |
Para saber mais, confira a documentação pip
para --index-url
e o uso de Dependências personalizadas na referência do desenvolvedor de Python.
PIP_EXTRA_INDEX_URL
O valor dessa configuração indica uma URL de índice adicional de pacotes personalizados para aplicativos do Python a serem usados além de --index-url
. Use essa configuração quando precisar executar um build remoto usando dependências personalizadas encontradas em um índice de pacote extra. Deve seguir as mesmas regras que --index-url
.
Chave | Valor de exemplo |
---|---|
PIP_EXTRA_INDEX_URL | http://my.custom.package.repo/simple |
Para saber mais, confira a documentação pip
para --extra-index-url
e Dependências personalizadas na referência do desenvolvedor de Python.
PYTHON_ISOLATE_WORKER_DEPENDENCIES
A configuração é específica para aplicativos de funções do Python. Ele define a priorização da ordem de carregamento do módulo. Por padrão, esse valor é definido como 0
.
Chave | Valor | Descrição |
---|---|---|
PYTHON_ISOLATE_WORKER_DEPENDENCIES | 0 |
Priorize o carregamento das bibliotecas do Python das dependências internas de trabalho do Python; o que é o comportamento padrão. Bibliotecas de terceiros definidas em requirements.txt podem estar sombreadas. |
PYTHON_ISOLATE_WORKER_DEPENDENCIES | 1 |
Priorize o carregamento das bibliotecas do Python do pacote do aplicativo definido em requirements.txt. Isso impede que suas bibliotecas se colidam com as bibliotecas internas de trabalho do Python. |
PYTHON_ENABLE_DEBUG_LOGGING
Habilita o registro em log no nível de depuração em um aplicativo de funções do Python. Um valor de 1
habilita o registro em log no nível de depuração. Sem essa configuração ou com um valor de 0
, somente as informações e os logs de nível superior são enviados do trabalho do Python para o host do Functions. Use essa configuração ao depurar ou rastrear suas execuções de função do Python.
Ao depurar funções do Python, certifique-se também de definir um nível de log de depuração ou rastreamento no arquivo host.json, conforme necessário. Para saber mais, confira Como configurar o monitoramento para o Azure Functions.
PYTHON_ENABLE_WORKER_EXTENSIONS
A configuração é específica para aplicativos de funções do Python. Definir isso como 1
permite que o trabalho carregue em 1
definidas em requirements.txt. Ele permite que seu aplicativo de funções acesse novos recursos fornecidos por pacotes de terceiros. Ele também pode alterar o comportamento da carga de função e da invocação em seu aplicativo. Verifique se a extensão escolhida é confiável, pois você corre o risco de usá-la. O Azure Functions não oferece garantias expressas a nenhuma extensão. Para saber como usar uma extensão, visite a página do manual da extensão ou o documento readme. Por padrão, esse valor é definido como 0
.
Chave | Valor | Descrição |
---|---|---|
PYTHON_ENABLE_WORKER_EXTENSIONS | 0 |
Desabilite qualquer extensão de trabalho do Python. |
PYTHON_ENABLE_WORKER_EXTENSIONS | 1 |
Permitir que o trabalho do Python carregue extensões do requirements.txt. |
PYTHON_THREADPOOL_THREAD_COUNT
Especifica o número máximo de threads que uma função de trabalho na linguagem Python usaria para executar invocações de função, com um valor padrão de 1
para o Python versão 3.8
e abaixo. Para o Python versão 3.9
e superior, o valor é definido como None
. Essa configuração não garante o número de threads que seriam definidos durante as execuções. Ela permite que o Python expanda o número de threads para o valor especificado. A configuração se aplica somente a aplicativos de funções Python. Além disso, a configuração se aplica à invocação de funções síncronas, e não a corrotinas.
Chave | Valor de exemplo | Valor máximo |
---|---|---|
PYTHON_THREADPOOL_THREAD_COUNT | 2 | 32 |
SCALE_CONTROLLER_LOGGING_ENABLED
No momento, essa configuração está na versão prévia.
Essa configuração controla o registro em log do controlador de escala do Azure Functions. Para saber mais, confira Dimensionar logs do controlador.
Chave | Valor de exemplo |
---|---|
SCALE_CONTROLLER_LOGGING_ENABLED | AppInsights:Verbose |
O valor dessa chave é fornecido no formato <DESTINATION>:<VERBOSITY>
, que é definido da seguinte maneira:
Propriedade | Descrição |
---|---|
<DESTINATION> |
O destino para o qual os logs são enviados. Os valores válidos são AppInsights e Blob .Ao usar o AppInsights , verifique se Application Insights está habilitado no aplicativo de funções.Quando você define o destino como Blob , os logs são criados em um contêiner de blob nomeado azure-functions-scale-controller na conta de armazenamento padrão definida na configuração do aplicativo AzureWebJobsStorage . |
<VERBOSITY> |
Especifique o nível de registro em log. Os valores com suporte são None , Warning e Verbose .Quando definido como Verbose , o controlador de escala registra um motivo para cada alteração na contagem de trabalhadores, bem como informações sobre os gatilhos que resultam nessas decisões. Os logs detalhados incluem avisos de gatilho e os hashes usados pelos gatilhos antes e depois que o controlador de escala é executado. |
Dica
Lembre-se de que, enquanto você deixa o registro em log do controlador de escala habilitado, ele afeta os custos potenciais de monitoramento do seu aplicativo de funções. Considere habilitar o registro em log até que você tenha coletado dados suficientes para entender como o controlador de escala está se comportando, depois desabilite-o.
SCM_DO_BUILD_DURING_DEPLOYMENT
Controla o comportamento de build remoto durante a implantação. Quando SCM_DO_BUILD_DURING_DEPLOYMENT
é definido como true
, o projeto é criado remotamente durante a implantação.
Chave | Valor de exemplo |
---|---|
SCM_DO_BUILD_DURING_DEPLOYMENT | true |
SCM_LOGSTREAM_TIMEOUT
Controla o tempo limite, em segundos, quando conectado aos logs de streaming. O valor padrão é 7200 (2 horas).
Chave | Valor de exemplo |
---|---|
SCM_LOGSTREAM_TIMEOUT | 1800 |
O valor de exemplo acima 1800
define um tempo limite de 30 minutos. Para saber mais, confira Habilitar logs de streaming.
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
Cadeia de conexão para a conta de armazenamento em que o código e a configuração do aplicativo de funções estão armazenados em planos de colocação em escala controlados por eventos. Para obter mais informações, confira Criar um aplicativo de funções.
Chave | Valor de exemplo |
---|---|
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING | DefaultEndpointsProtocol=https;AccountName=... |
Essa configuração é necessária para aplicativos dos planos Consumo e Premium no Windows e no Linux. Ela não é necessária para aplicativos do plano Dedicado, que não são escalados dinamicamente pelo Functions.
Alterar ou remover essa configuração pode fazer com que o aplicativo de funções não seja iniciado. Para saber mais, confira este artigo de solução de problemas.
WEBSITE_CONTENTOVERVNET
Um valor 1
permite que o aplicativo de funções seja dimensionado quando você tiver a conta de armazenamento restrita a uma rede virtual. Habilite essa configuração ao restringir a conta de armazenamento a uma rede virtual. Para saber mais, confira Restringir a conta de armazenamento a uma rede virtual.
Chave | Valor de exemplo |
---|---|
WEBSITE_CONTENTOVERVNET | 1 |
Com suporte em planos Premium e Dedicados (Serviço de Aplicativo) (Standard e superior). Não tem suporte quando executado em um Plano de consumo.
WEBSITE_CONTENTSHARE
O caminho de arquivo para o código do aplicativo de funções e a configuração em um plano de escala controlado por eventos. Usado com WEBSITE_CONTENTAZUREFILECONNECTIONSTRING. O padrão é uma cadeia exclusiva gerada pelo runtime que começa com o nome do aplicativo de funções. Consulte Criar um aplicativo de funções.
Chave | Valor de exemplo |
---|---|
WEBSITE_CONTENTSHARE | functionapp091999e2 |
Essa configuração é necessária para aplicativos dos planos Consumo e Premium no Windows e no Linux. Ela não é necessária para aplicativos do plano Dedicado, que não são escalados dinamicamente pelo Functions.
Alterar ou remover essa configuração pode fazer com que o aplicativo de funções não seja iniciado. Para saber mais, confira este artigo de solução de problemas.
As seguintes considerações se aplicam ao usar um modelo do ARM (Azure Resource Manager) para criar um aplicativo de funções durante a implantação:
- Quando você não define um valor
WEBSITE_CONTENTSHARE
para o aplicativo de funções principal ou qualquer aplicativo nos slots, valores de compartilhamento exclusivos são gerados para você. Nenhuma configuraçãoWEBSITE_CONTENTSHARE
é a abordagem recomendada para uma implantação de modelo do ARM. - Há cenários em que você deve definir o valor
WEBSITE_CONTENTSHARE
como um compartilhamento predefinido, como quando você usa uma conta de armazenamento protegida em uma rede virtual. Nesse caso, você deve definir um nome de compartilhamento exclusivo para o aplicativo de funções principal e o aplicativo para cada slot de implantação. WEBSITE_CONTENTSHARE
não pode ser uma configuração de slot.- Quando você especificar
WEBSITE_CONTENTSHARE
, o valor deverá seguir estas diretrizes para nomes do compartilhamento.
Para saber mais, confira Automatizar a implantação de recursos para seu aplicativo de funções.
WEBSITE_DNS_SERVER
Define o servidor DNS usado por um aplicativo ao resolver endereços IP. Frequentemente, essa configuração é necessária ao usar determinadas funcionalidades de rede, como Zonas Privadas do DNS do Azure e pontos de extremidade privados.
Chave | Valor de exemplo |
---|---|
WEBSITE_DNS_SERVER | 168.63.129.16 |
WEBSITE_ENABLE_BROTLI_ENCODING
Controla se a codificação Brotli é usada para compactação em vez da compactação gzip padrão. Quando WEBSITE_ENABLE_BROTLI_ENCODING
é definido como 1
, a codificação Brotli é usada; caso contrário, a codificação gzip é usada.
WEBSITE_FUNCTIONS_ARMCACHE_ENABLED
Desabilita o cache ao implantar aplicativos de funções usando modelos do ARM (Azure Resource Manager).
Chave | Valor de exemplo |
---|---|
WEBSITE_FUNCTIONS_ARMCACHE_ENABLED | 0 |
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT
O número máximo de instâncias que o aplicativo pode escalar horizontalmente. O padrão é sem limites.
Importante
Essa configuração está em versão prévia. Uma propriedade de aplicativo para expansão máxima da função foi adicionada e é a maneira recomendada de limitar a escala horizontal.
Chave | Valor de exemplo |
---|---|
WEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUT | 5 |
WEBSITE_NODE_DEFAULT_VERSION
Somente Windows.
Define a versão do Node.js a ser usada ao executar seu aplicativo de funções no Windows. Use um til (~) para que o runtime use a versão mais recente disponível da versão principal de destino. Por exemplo, quando definido como ~18
, a versão mais recente do Node.js 18 é usada. Quando uma versão principal é direcionada com um til, você não precisa atualizar manualmente a versão secundária.
Chave | Valor de exemplo |
---|---|
WEBSITE_NODE_DEFAULT_VERSION | ~18 |
WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS
Ao executar uma troca de slot no Functions Premium, ela poderá falhar ao trocar se a conta de armazenamento associada ao aplicativo de funções for restrita à rede. Isso ocorre devido a um recurso de registro em log de aplicativo herdado que o Functions e o Serviço de Aplicativo compartilham. Essa configuração substitui esse recurso de log herdado e permite que a troca ocorra. Defina como 0
no slot de produção e marque-o como uma configuração de slot de implantação (também conhecido como autoadesiva) ou adicione a todos os slots para garantir que todas as configurações da versão também sejam trocadas.
Chave | Valor de exemplo |
---|---|
WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS | 0 |
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS
Por padrão, as configurações de versão para aplicativos de funções são específicas para cada slot. Essa configuração é usada ao atualizar funções usando slots de implantação. Isso impede o comportamento imprevisto devido a alterações da versões após uma troca. Defina como 0
em produção e no slot para garantir que todas as configurações de versão também sejam trocadas. Para saber mais, confira Fazer upgrade usando slots.
Chave | Valor de exemplo |
---|---|
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS | 0 |
WEBSITE_RUN_FROM_PACKAGE
Permite que seu aplicativo de funções execute de um arquivo de pacote montado.
Chave | Valor de exemplo |
---|---|
WEBSITE_RUN_FROM_PACKAGE | 1 |
Os valores válidos são 1
ou uma URL que resolve para o local de um arquivo de pacote de implantação. Quando definido como 1
, o pacote deve estar na pasta d:\home\data\SitePackages
. Ao usar uma implantação em zip com WEBSITE_RUN_FROM_PACKAGE
implantado, o pacote é automaticamente carregado para esse local. Na versão prévia, essa configuração foi nomeada WEBSITE_RUN_FROM_ZIP
. Para obter mais informações, veja Executar suas funções de um arquivo de pacote.
WEBSITE_SKIP_CONTENTSHARE_VALIDATION
As configurações WEBSITE_CONTENTAZUREFILECONNECTIONSTRING e WEBSITE_CONTENTSHARE têm verificações de validação adicionais para garantir que o aplicativo possa ser iniciado corretamente. A criação de configurações de aplicativo falhará se o aplicativo de funções não puder chamar corretamente a conta de armazenamento downstream ou o Key Vault devido a restrições de rede ou outros fatores limitantes. Quando WEBSITE_SKIP_CONTENTSHARE_VALIDATION é definido como 1
, a verificação de validação é ignorada; caso contrário, o valor usa 0
como padrão e a validação ocorre.
Chave | Valor de exemplo |
---|---|
WEBSITE_SKIP_CONTENTSHARE_VALIDATION | 1 |
Se a validação for ignorada e a cadeia de conexão ou o compartilhamento de conteúdo não forem inválidos, o aplicativo poderá não iniciar corretamente. Nesse caso, as funções retornam erros HTTP 500. Para obter mais informações, confira Solucionar o erro: "O Azure Functions Runtime está inacessível"
WEBSITE_SLOT_NAME
Somente leitura. Nome do slot de implantação atual. O nome do slot de produção é Production
.
Chave | Valor de exemplo |
---|---|
WEBSITE_SLOT_NAME | Production |
WEBSITE_TIME_ZONE
Permite que você defina o fuso horário para o aplicativo de funções.
Chave | Sistema operacional | Valor de exemplo |
---|---|---|
WEBSITE_TIME_ZONE | Windows | Eastern Standard Time |
WEBSITE_TIME_ZONE | Linux | America/New_York |
O fuso horário padrão usado com as expressões CRON é a Hora Universal Coordenada (UTC). Para que a expressão CRON se baseie em outro fuso horário, crie uma configuração de aplicativo para o aplicativo de funções denominada WEBSITE_TIME_ZONE
.
O valor dessa configuração depende do sistema operacional e do plano no qual seu aplicativo de funções é executado.
Sistema operacional | Plano | Valor |
---|---|---|
Windows | Tudo | Defina o valor para o nome do fuso horário desejado, conforme fornecido pela segunda linha de cada par fornecido pelo comando do Windowstzutil.exe /L |
Linux | Premium Dedicado |
Defina o valor como o nome do fuso horário desejado, conforme mostrado no banco de dados tz. |
Observação
WEBSITE_TIME_ZONE
atualmente não é compatível com o plano Consumo em Linux.
Por exemplo, o horário do leste dos EUA (representado por Eastern Standard Time
(Windows) ou America/New_York
(Linux)) atualmente usa UTC-05: 00 durante o horário padrão e UTC-04:00 durante o dia. Para que um acionador de cronômetro seja disparado às 10:00, horário do leste dos EUA, todos os dias, crie uma configuração de aplicativo para seu aplicativo de funções chamado WEBSITE_TIME_ZONE
, defina o valor como Eastern Standard Time
(Windows) ou America/New_York
(Linux) e, em seguida, use a seguinte expressão NCRONTAB:
"0 0 10 * * *"
Quando você usa WEBSITE_TIME_ZONE
, o horário é ajustado para alterações de horário no fuso horário específico, incluindo horário de verão e alterações no horário padrão.
WEBSITE_USE_PLACEHOLDER
Indica se é necessário usar uma otimização de inicialização a frio específica durante a execução no plano de consumo. Defina como 0
para desabilitar a otimização de inicialização a frio no plano de consumo.
Chave | Valor de exemplo |
---|---|
WEBSITE_USE_PLACEHOLDER | 1 |
WEBSITE_VNET_ROUTE_ALL
Importante
WEBSITE_VNET_ROUTE_ALL é uma configuração de aplicativo herdada que foi substituída pela configuração de site vnetRouteAllEnabled.
Indica se todo o tráfego de saída do aplicativo é roteado por meio da rede virtual. Um valor de configuração 1
indica que todo o tráfego é roteado por meio da rede virtual. Você precisa dessa configuração ao usar recursos de Integração da rede virtual regional. Ela também é usada quando um gateway de NAT de rede virtual é usado para definir um endereço IP de saída estático.
Chave | Valor de exemplo |
---|---|
WEBSITE_VNET_ROUTE_ALL | 1 |
Configurações do site do Serviço de Aplicativo
Algumas configurações deverão ser mantidas no nível do Serviço de Aplicativo como configurações de site como, por exemplo, as versões de idioma. Essas configurações são gerenciadas no portal usando as APIs REST, a CLI do Azure ou o Azure PowerShell. Veja a seguir as configurações de site que poderão ser necessárias, dependendo do idioma de tempo de execução, sistema operacional e versões:
linuxFxVersion
Para aplicativos de funções em execução no Linux, linuxFxVersion
indica o idioma e a versão do processo de trabalho específico do idioma. Essas informações são usadas juntamente com FUNCTIONS_EXTENSION_VERSION
para determinar qual imagem de contêiner específica do Linux está instalada para executar o aplicativo de funções. Essa configuração poderá ser definida para um valor predefinido ou um URI de imagem personalizado.
Esse valor será definido quando você criar o aplicativo de funções do Linux. Talvez seja necessário defini-lo para implantações de modelo do ARM e Bicep e em determinados cenários de atualização.
Valores de linuxFxVersion válidos
É possível usar o seguinte comando da CLI do Azure para ver uma tabela de valores atuais de linuxFxVersion
, por versão do Azure Functions Runtime com suporte:
az functionapp list-runtimes --os linux --query "[].{stack:join(' ', [runtime, version]), LinuxFxVersion:linux_fx_version, SupportedFunctionsVersions:to_string(supported_functions_versions[])}" --output table
O comando anterior exigirá que você atualize para a versão 2.40 da CLI do Azure.
Imagens personalizadas
Quando você criar e mantiver seu próprio contêiner do Linux personalizado do seu aplicativo de funções, o valor de linuxFxVersion
também estará no formato DOCKER|<IMAGE_URI>
, como no exemplo a seguir:
linuxFxVersion = "DOCKER|contoso.com/azurefunctionsimage:v1.0.0"
Para obter mais informações, consulte Criar uma função no Linux usando um contêiner personalizado.
Importante
Ao usar contêineres personalizados, será necessário manter a imagem de base do contêiner atualizada para a imagem de base com suporte mais recente. As imagens base com suporte para o Azure Functions são específicas a uma linguagem e encontradas nos repositórios de imagem base do Azure Functions, por linguagem:
A equipe do Functions está comprometida em publicar atualizações mensais para essas imagens base. As atualizações regularem incluem as atualizações de versão secundária mais recentes e as correções de segurança para linguagens e runtime do Functions. Para contêineres personalizados, será necessário atualizar regularmente a imagem base no Dockerfile, recompilar e reimplantar as versões atualizadas dos contêineres personalizados.
netFrameworkVersion
Define a versão específica do .NET para funções C#. Para saber mais, confira Atualizar seu aplicativo de funções no Azure.
powerShellVersion
Define a versão específica do PowerShell na qual as funções executam. Para obter mais informações, consulte Alterar a versão do PowerShell.
Ao executar localmente, você usará a configuração FUNCTIONS_WORKER_RUNTIME_VERSION
no arquivo local.settings.json.
vnetrouteallenabled
Indica se todo o tráfego de saída do aplicativo é roteado por meio da rede virtual. Um valor de configuração 1
indica que todo o tráfego é roteado por meio da rede virtual. Você precisa dessa configuração ao usar recursos de Integração da rede virtual regional. Ela também é usada quando um gateway de NAT de rede virtual é usado para definir um endereço IP de saída estático. Para saber mais, confira Configurar o roteamento de aplicativos.
Essa configuração de site substitui a configuração WEBSITE_VNET_ROUTE_ALL herdada.
Próximas etapas
Saiba como atualizar as configurações do aplicativo
Consulte as configurações no arquivo host.json
Consulte outras configurações de aplicativo para aplicativos do Serviço de Aplicativo