Configurar um aplicativo 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

As configurações do aplicativo podem ser resolvidas no 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.

    Search for App Services

  2. No menu à esquerda do aplicativo, selecione Configurações>Configurações do aplicativo.

    Application Settings

    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 Nova configuração de aplicativo. Para editar uma configuração, selecione o botão Editar no lado direito.

  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 tiver concluído, selecione Atualizar. Lembre de selecionar Salvar na página de Configuração.

Editar configurações de aplicativo em massa

Selecione o botão Edição avançada. Edite as configurações na área de texto. Quando tiver concluído, selecione Atualizar. Lembre de selecionar Salvar na página de Configuração.

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

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ções>Configurações do aplicativo.

Application Settings

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_

Observação

Os aplicativos .NET direcionados ao PostgreSQL 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.

    Search for App Services

  2. No menu à esquerda do aplicativo, selecione Configurações>Configurações do aplicativo.

    Application Settings

    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 Nova cadeia de conexão. Para editar uma cadeia de conexão, selecione o botão Editar no lado direito.

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

  5. Quando tiver concluído, selecione Atualizar. Lembre de selecionar Salvar na página de Configuração.

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 tiver concluído, selecione Atualizar. Lembre de selecionar Salvar na página de Configuração.

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.

General settings

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.

    General settings for Linux containers

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

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

    Default documents

  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.

    Directory check box

  4. Selecione OK.

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.

    Path mappings

  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.

Configurar contêineres personalizados

Próximas etapas