Configurar um aplicativo do Serviço de Aplicativo
Observação
A partir de 1º de junho de 2024, todos os aplicativos recém-criados do Serviço de Aplicativo terão a opção de gerar um nome do host padrão exclusivo usando a convenção de nomenclatura <app-name>-<random-hash>.<region>.azurewebsites.net
. Os nomes de aplicativos existentes permanecerão inalterados.
Exemplo: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Para obter mais detalhes, consulte Nome do Host Padrão Exclusivo para o Recurso do Serviço de Aplicativo.
Este artigo explica como definir configurações comuns para aplicativos Web, back-end móvel ou aplicativo de API. Para o Azure Functions, veja Referência das configurações de aplicativo do Azure Functions.
Definir configurações de aplicativo
Observação
- Os nomes das configurações do aplicativo podem conter apenas letras, números (0-9), pontos (".") e sublinhados ("_")
- Caracteres especiais no valor de uma configuração de aplicativo devem ser escapados conforme necessário pelo sistema operacional de destino
Por exemplo, para definir uma variável de ambiente no App Service Linux com o valor "pa$$w0rd\"
, a cadeia de caracteres para a configuração do aplicativo deve ser: "pa\$\$w0rd\\"
No Serviço de Aplicativo, as configurações do aplicativo são variáveis enviadas como variáveis de ambiente para o código do aplicativo. Para aplicativos Linux e contêineres personalizados, o Serviço de Aplicativo envia as configurações do aplicativo para o contêiner usando o sinalizador --env
para definir a variável de ambiente no contêiner. Em ambos os casos, elas são injetadas em seu ambiente de aplicativo na inicialização do aplicativo. Quando você adiciona, remove ou edita configurações do aplicativo, o Serviço de Aplicativo dispara uma reinicialização do aplicativo.
Para desenvolvedores ASP.NET e ASP.NET Core, definir as configurações de aplicativo no Serviço de Aplicativo é como defini-las em <appSettings>
no Web.config ou no appsettings.json, mas os valores no Serviço de Aplicativo substituem aqueles no Web.config ou no appsettings.json. Você pode manter as configurações de desenvolvimento (por exemplo, senha MySQL local) em Web.config ou appsettings.json e os segredos de produção (por exemplo, senha do banco de dados MySQL do Azure) em segurança no Serviço de Aplicativo. O mesmo código usa as configurações de desenvolvimento quando você depura localmente e usa os segredos de produção quando implantado no Azure.
Da mesma forma, outras pilhas de linguagem obterão as configurações do aplicativo como variáveis de ambiente em runtime. Para ver as etapas específicas da pilha de linguagem, confira:
As configurações do aplicativo são sempre criptografadas quando armazenadas (criptografadas em repouso).
Observação
Se você armazena segredos nas configurações do aplicativo, considere usar Referências do Key Vault. Se os seus segredos forem para conectividade com recursos de back-end, considere opções de conectividade mais seguras que não exijam quaisquer segredos. Para obter mais informações, veja Conectividade segura com serviços e bancos de dados do Azure do Serviço de Aplicativo do Azure.
No Azure portal, pesquise e selecione Serviços de Aplicativos e, em seguida, selecione o nome do seu aplicativo.
No menu à esquerda do aplicativo, selecione Variáveis de ambiente>Configurações do aplicativo.
Por padrão e visando a segurança, os valores das configurações do aplicativo ficam ocultos no portal. Para ver um valor oculto de uma configuração de aplicativo, selecione o campo Valor. Para ver os valores ocultos de todas as configurações do aplicativo, selecione o botão Mostrar valores.
Para adicionar uma nova configuração de aplicativo, selecione Adicionar. Para editar uma configuração, clique nela.
Na caixa de diálogo, você pode fixar a configuração no slot atual.
Observação
Em um serviço de aplicativo padrão ou um contêiner personalizado do Linux, qualquer estrutura de chave JSON aninhada no nome da configuração do aplicativo como
ApplicationInsights:InstrumentationKey
precisa ser configurada no Serviço de Aplicativo comoApplicationInsights__InstrumentationKey
para o nome da chave. Em outras palavras, qualquer:
deve ser substituído por__
(sublinhado duplo). Todos os períodos no nome da configuração do aplicativo serão substituídos por um_
(sublinhado único).Quando terminar, selecione Aplicar. Não se esqueça de selecionar Aplicar na página Variáveis de ambiente.
Editar configurações de aplicativo em massa
Selecione o botão Edição avançada. Edite as configurações na área de texto. Ao terminar, selecione OK. Não se esqueça de selecionar Aplicar na página Variáveis de ambiente.
As configurações do aplicativo têm a seguinte formatação JSON:
[
{
"name": "<key-1>",
"value": "<value-1>",
"slotSetting": false
},
{
"name": "<key-2>",
"value": "<value-2>",
"slotSetting": false
},
...
]
Configurar cadeias de conexão
Observação
Considere opções de conectividade mais seguras que não exijam segredos de conexão. Para obter mais informações, veja Conectividade segura com serviços e bancos de dados do Azure do Serviço de Aplicativo do Azure.
Para desenvolvedores de ASP.NET e ASP.NET Core, definir cadeias de conexão no Serviço de Aplicativo é como configurá-las em <connectionStrings>
no Web.config, mas os valores definidos no Serviço de Aplicativo substituem aqueles em Web.config. Você pode manter as configurações de desenvolvimento (por exemplo, um arquivo de banco de dados) em Web.config e os segredos de produção (por exemplo, credenciais do Banco de Dados SQL) em segurança no Serviço de Aplicativo. O mesmo código usa as configurações de desenvolvimento quando você depura localmente e usa os segredos de produção quando implantado no Azure.
Para outras pilhas de linguagem, é melhor usar as configurações do aplicativo, pois as cadeias de conexão exigem formatação especial nas chaves variáveis para acessar os valores.
Observação
Há um caso em que talvez você queira usar cadeias de conexão em vez de configurações de aplicativo para linguagens não .NET: determinados tipos de banco de dados do Azure fazem backups em conjunto com o aplicativo somente caso você configure uma cadeia de conexão do banco de dados em seu aplicativo do Serviço de Aplicativo. Para obter mais informações, confira Criar um backup personalizado. Se você não precisar desse backup automatizado, use as configurações do aplicativo.
Em runtime, as cadeias de conexão estão disponíveis como variáveis de ambiente prefixadas com os seguintes tipos de conexão:
- SQLServer:
SQLCONNSTR_
- MySQL:
MYSQLCONNSTR_
- SQLAzure:
SQLAZURECONNSTR_
- Personalizado:
CUSTOMCONNSTR_
- PostgreSQL:
POSTGRESQLCONNSTR_
- Hub de notificações:
NOTIFICATIONHUBCONNSTR_
- Barramento de Serviço:
SERVICEBUSCONNSTR_
- Hub de eventos:
EVENTHUBCONNSTR_
- BD de documento:
DOCDBCONNSTR_
- Cache Redis:
REDISCACHECONNSTR_
Observação
Os aplicativos .NET direcionados ao PostgreSQL, Hub de notificações, Barramento de Serviço, Hub de eventos, BD de documento e Cache Redis devem definir a cadeia de conexão como Custom como solução alternativa para um problema conhecido no .NET EnvironmentVariablesConfigurationProvider
Por exemplo, uma cadeia de conexão MySQL nomeada connectionstring1 pode ser acessada como variável de ambiente MYSQLCONNSTR_connectionString1
. Para ver as etapas específicas da pilha de linguagem, confira:
As cadeias de conexão são sempre criptografadas quando armazenadas (criptografadas em repouso).
Observação
As cadeias de conexão também podem ser resolvidas a partir do Key Vault usando as Referências de Key Vault.
No Azure portal, pesquise e selecione Serviços de Aplicativos e, em seguida, selecione o nome do seu aplicativo.
No menu à esquerda do aplicativo, selecione Variáveis de ambiente>Cadeias de conexão.
Por padrão e visando a segurança, os valores das cadeias de conexão ficam ocultas no portal. Para ver um valor oculto de uma cadeia de conexão, selecione o campo Valor. Para ver os valores ocultos de todas as cadeias de conexão, selecione o botão Mostrar valor.
Para adicionar uma nova cadeia de conexão, selecione Adicionar. Para editar uma cadeia de conexão, selecione a cadeia de conexão.
Na caixa de diálogo, você pode fixar a cadeia de conexão no slot atual.
Quando terminar, selecione Aplicar. Não se esqueça de selecionar Aplicar na página Variáveis de ambiente.
Editar cadeias de conexão em massa
Selecione o botão Edição avançada. Editar cadeias de conexão na área de texto. Quando terminar, selecione Aplicar. Não se esqueça de selecionar Aplicar na página Variáveis de ambiente.
As cadeias de conexão têm a seguinte formatação JSON:
[
{
"name": "name-1",
"value": "conn-string-1",
"type": "SQLServer",
"slotSetting": false
},
{
"name": "name-2",
"value": "conn-string-2",
"type": "PostgreSQL",
"slotSetting": false
},
...
]
Definir configurações de pilha de linguagem
Definir as configurações gerais
No Azure portal, pesquise e selecione Serviços de Aplicativos e, em seguida, selecione o nome do seu aplicativo. No menu à esquerda do aplicativo, selecione Configuração>Configurações gerais.
Aqui, você pode definir algumas configurações comuns do aplicativo. Algumas configurações exigem Escalar verticalmente para os tipos de preço mais altos.
Configurações de pilha: a pilha do software para executar o aplicativo, incluindo as versões de linguagem e SDK.
Para aplicativos do Linux, é possível selecionar a versão de runtime da linguagem e definir um Comando de inicialização opcional ou um arquivo de comando de inicialização.
Configurações de plataforma: permite que você defina as configurações da plataforma de hospedagem, incluindo:
- Bitness da plataforma: 32 bits ou 64 bits. Somente aplicativos do Windows.
- Estado FTP: permita apenas FTPS ou desabilite totalmente o FTP.
- Versão HTTP: defina como 2.0 para habilitar o suporte para o protocolo HTTPS/2.
Observação
A maioria dos navegadores modernos dá suporte para protocolo HTTP/2 somente em TLS, enquanto o tráfego não criptografado continua usando HTTP / 1.1. Para garantir que os navegadores cliente se conectem ao seu aplicativo com HTTP/2, proteja seu nome DNS personalizado. Para obter mais informações, confira Proteger um nome DNS personalizado com uma associação TLS/SSL no Serviço de Aplicativo do Azure.
Soquetes Web: por exemplo para ASP.NET SignalR ou socket.io.
Always On: mantém o aplicativo carregado mesmo quando não há tráfego. Quando Always On estiver desligado (padrão), o aplicativo é descarregado após 20 minutos sem solicitações de entrada. O aplicativo descarregado pode causar alta latência para novas solicitações devido ao tempo de aquecimento. Quando Always On está ligado, o balanceador de carga de front-end envia uma solicitação GET para a raiz do aplicativo a cada cinco minutos. É importante garantir que essa solicitação receba uma resposta 200 OK para garantir que todas as operações de recriação de imagem sejam executadas corretamente. O ping contínuo impede que o aplicativo seja descarregado.
O Always On é necessário para WebJobs contínuos ou que são disparados usando uma expressão CRON.
Afinidade de sessão: em uma implantação de várias instâncias, verifique se o cliente é roteado para a mesma instância durante a vida útil da sessão. Você pode definir essa opção como Desligado para aplicativos sem estado.
Proxy de afinidade de sessão: o proxy de afinidade de sessão pode ser ativado se o aplicativo estiver por trás de um proxy reverso (como o Gateway de Aplicativo do Azure ou o Azure Front Door) e você estiver usando o nome do host padrão. O domínio do cookie de afinidade de sessão será alinhado com o nome do host encaminhado do proxy reverso.
Somente HTTPS: quando habilitado, todo o tráfego HTTP é redirecionado para HTTPS.
Versão mínima do TLS: selecione a versão mínima de criptografia TLS exigida pelo seu aplicativo.
Depuração: habilite a depuração remota para aplicativos ASP.NET, ASP.NET Core ou Node.js. Esta opção é desativada automaticamente depois de 48 horas.
Certificados de cliente de entrada: requer certificados de cliente na autenticação mútua.
Configurar documentos padrão
Esta configuração é apenas para aplicativos do Windows.
O documento padrão é a página da Web exibida na URL raiz de um aplicativo do Serviço de Aplicativo. O primeiro arquivo correspondente na lista é usado. Se o aplicativo usar módulos que roteiam com base na URL em vez de servir conteúdo estático, não haverá necessidade de documentos padrão.
No Azure portal, pesquise e selecione Serviços de Aplicativos e, em seguida, selecione o nome do seu aplicativo.
No menu à esquerda do aplicativo, selecione Configuração>Documentos padrão.
Para adicionar um documento padrão, selecione Novo documento. Para remover um documento padrão, selecione Excluir à direita dele.
Mapear um caminho de URL para um diretório
Por padrão, o Serviço de Aplicativo inicia seu aplicativo do diretório raiz do código do aplicativo. No entanto, algumas estruturas da Web não são iniciadas no diretório raiz. Por exemplo, Laravel inicia no subdiretório public
. Um aplicativo desse poderia ser acessado em http://contoso.com/public
, mas normalmente o ideal é direcionar http://contoso.com
para o diretório public
, em vez disso. Se o arquivo de inicialização do aplicativo estiver em uma pasta diferente ou se o repositório tiver mais de um aplicativo, você poderá editar ou adicionar aplicativos virtuais e diretórios.
Importante
O diretório virtual para um recurso de caminho físico só está disponível em aplicativos do Windows.
No Azure portal, pesquise e selecione Serviços de Aplicativos e, em seguida, selecione o nome do seu aplicativo.
No menu à esquerda do aplicativo, selecione Configuração>Mapeamentos de caminho
Selecione Novo aplicativo ou diretório virtual.
- Para mapear um diretório virtual para um caminho físico, marque a caixa de seleção Diretório. Especifique o diretório virtual e o caminho relativo (físico) correspondente para a raiz do site (
D:\home
). - Para marcar um diretório virtual como um aplicativo Web, desmarque a caixa de seleção Diretório.
- Para mapear um diretório virtual para um caminho físico, marque a caixa de seleção Diretório. Especifique o diretório virtual e o caminho relativo (físico) correspondente para a raiz do site (
Selecione OK. Não se esqueça de selecionar Salvar na página Configuração.
Configurar mapeamentos de manipulador
Para aplicativos do Windows, você pode personalizar os mapeamentos do manipulador do IIS, os diretórios e os aplicativos virtuais. Os mapeamentos do manipulador permitem que você adicione processadores de script personalizado para manipular solicitações para extensões de arquivo especificadas.
Para adicionar um manipulador personalizado:
No Azure portal, pesquise e selecione Serviços de Aplicativos e, em seguida, selecione o nome do seu aplicativo.
No menu à esquerda do aplicativo, selecione Configuração>Mapeamentos de caminho.
Selecione Novo mapeamento de manipulador. Configure o manipulador da seguinte maneira:
- Extensão. A extensão do arquivo que você deseja manipular, como *.php ou handler.fcgi.
- Processador de script. O caminho absoluto do processador de script até você. As solicitações para arquivos que correspondam à extensão do arquivo são processadas pelo processador de script. Use o caminho
D:\home\site\wwwroot
para se referir ao diretório raiz do seu aplicativo. - Argumentos. Os argumentos da linha de comando opcionais para o processador de script.
Selecione OK. Não se esqueça de selecionar Salvar na página Configuração.
Configurar contêineres personalizados
- Configurar um contêiner personalizado para o Serviço de Aplicativo do Azure
- Adicionar armazenamento personalizado para seu aplicativo conteinerizado
Próximas etapas
- Referência de variáveis de ambiente e configurações de aplicativo
- Configurar um nome de domínio personalizado no Serviço de Aplicativo do Azure
- Configurar ambientes de preparo no Serviço de Aplicativo do Azure
- Proteger um nome DNS personalizado com uma associação TLS/SSL no Serviço de Aplicativo do Azure
- Habilitar logs de diagnóstico
- Dimensionar um aplicativo no Serviço de Aplicativo do Azure
- Conceitos básicos de monitoramento no Serviço de Aplicativo do Azure
- Alterar configurações de applicationHost.config com o applicationHost.xdt