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.

  1. No Azure portal, pesquise e selecione Serviços de Aplicativos e, em seguida, selecione o nome do seu aplicativo.

    Pesquise por Serviços de Aplicativos

  2. No menu à esquerda do aplicativo, selecione Variáveis de ambiente>Configurações do aplicativo.

    Captura de tela mostrando como navegar para a página 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.

  3. Para adicionar uma nova configuração de aplicativo, selecione Adicionar. Para editar uma configuração, clique nela.

  4. 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 como ApplicationInsights__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).

  5. 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.

  1. No Azure portal, pesquise e selecione Serviços de Aplicativos e, em seguida, selecione o nome do seu aplicativo.

    Pesquise por Serviços de Aplicativos

  2. No menu à esquerda do aplicativo, selecione Variáveis de ambiente>Cadeias de conexão.

    Captura de tela mostrando a interface do usuário aberta para 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.

  3. Para adicionar uma nova cadeia de conexão, selecione Adicionar. Para editar uma cadeia de conexão, selecione a cadeia de conexão.

  4. Na caixa de diálogo, você pode fixar a cadeia de conexão no slot atual.

  5. 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.

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 gerais para contêineres do Linux

  • 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.

  1. No Azure portal, pesquise e selecione Serviços de Aplicativos e, em seguida, selecione o nome do seu aplicativo.

  2. No menu à esquerda do aplicativo, selecione Configuração>Documentos padrão.

    Documentos padrão

  3. 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.

  1. No Azure portal, pesquise e selecione Serviços de Aplicativos e, em seguida, selecione o nome do seu aplicativo.

  2. No menu à esquerda do aplicativo, selecione Configuração>Mapeamentos de caminho

  3. 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.

    Caixa de seleção Diretório

  4. 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:

  1. No Azure portal, pesquise e selecione Serviços de Aplicativos e, em seguida, selecione o nome do seu aplicativo.

  2. No menu à esquerda do aplicativo, selecione Configuração>Mapeamentos de caminho.

    Mapeamentos de caminho

  3. 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.
  4. Selecione OK. Não se esqueça de selecionar Salvar na página Configuração.

Configurar contêineres personalizados

Próximas etapas