Compartilhar via


Configurar um aplicativo do Serviço de Aplicativo

Este artigo explica como definir configurações comuns para aplicativos Web, um back-end móvel ou um aplicativo de API. Para o Azure Functions, veja Referência das configurações de aplicativo do Azure Functions.

Definir configurações de aplicativo

No Serviço de Aplicativo do Azure, as configurações de aplicativo são variáveis passadas como variáveis de ambiente para o código do aplicativo. As seguintes condições se aplicam às configurações do aplicativo:

  • Os nomes de configuração do aplicativo podem conter apenas letras, números (0-9), períodos (.) 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 Serviço de Aplicativo para Linux com o valor "pa$$w0rd\", a cadeia de caracteres para a configuração do aplicativo deve ser "pa\$\$w0rd\\".

Para aplicativos Linux e contêineres personalizados, o Serviço de Aplicativo passa as configurações do aplicativo para o contêiner usando o --env sinalizador 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 configurações de aplicativo no Serviço de Aplicativo é como configurá-las em <appSettings>Web.config ou appsettings.json. Os valores do Serviço de Aplicativo substituem os valores em Web.config ou appsettings.json. Você pode manter as configurações de desenvolvimento, como a senha local do MySQL, em Web.config ou appsettings.json. Você pode manter segredos de produção, como a senha do banco de dados MySQL do Azure, com segurança no Serviço de Aplicativo. O mesmo código usa as configurações de desenvolvimento ao depurar localmente. Ele usa seus segredos de produção ao implantá-los no Azure.

Outras pilhas de linguagem obterão as configurações do aplicativo como variáveis de ambiente em runtime. Para obter etapas específicas de cada pilha de linguagem, consulte:

As configurações do aplicativo são sempre criptografadas quando são armazenadas (criptografadas em repouso).

Observação

Se você armazena segredos nas configurações do aplicativo, considere usar Referências do Azure Key Vault. Se seus segredos forem para conectividade com recursos de back-end, considere as opções de conectividade mais seguras e que não exigem 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.

  2. No menu esquerdo do aplicativo, selecioneVariáveis de Ambiente de Configurações>. Em seguida, selecione as configurações do aplicativo.

    Captura de tela que mostra as seleções para exibir as 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, em Valor, selecione Mostrar valor. Para ver os valores ocultos de todas as configurações do aplicativo, selecione Mostrar valores.

    Observação

    As permissões de usuário de leitura/gravação são necessárias para exibir esta seção no portal do Azure. As funções internas do RBAC (controle de acesso baseado em função) com permissões suficientes são Proprietário, Colaborador e Colaborador do Site. A função Leitor por si só não teria permissão para acessar esta página.

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

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

    Observação

    Em um serviço de aplicativo Linux padrão ou em um contêiner personalizado do Linux, qualquer estrutura de chave JSON aninhada no nome da configuração do aplicativo precisa ser configurada de forma diferente para o nome da chave. Substitua qualquer dois-pontos (:) por um traço subscrito duplo (__). Substitua qualquer período (.) por um único sublinhado (_). Por exemplo, ApplicationInsights:InstrumentationKey precisa ser configurado no Serviço de Aplicativo como ApplicationInsights__InstrumentationKey para o nome da chave.

  5. Ao terminar, selecione Aplicar. Em seguida, selecione Aplicar na página Variáveis de ambiente .

Editar configurações de aplicativo em massa

  1. Selecione Edição avançada.
  2. Edite as configurações na área de texto.
  3. Quando terminar, selecione OK. Em seguida, selecione 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

Esta seção descreve como configurar cadeias de conexão.

Observação

Considere as opções de conectividade mais seguras e que não exigem 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 ASP.NET e ASP.NET Core, definir cadeias de conexão no Serviço de Aplicativo é como defini-las em <connectionStrings>Web.config. Os valores que você definir no App Service substituem os que estão em Web.config. Você pode manter as configurações de desenvolvimento, como um arquivo de banco de dados, em Web.config. Você pode manter segredos de produção, como credenciais de banco de dados SQL, com segurança no Serviço de Aplicativo. O mesmo código usa as configurações de desenvolvimento ao depurar localmente. Ele usa seus segredos de produção ao implantá-los no Azure.

Para outras pilhas de linguagem, é melhor usar as configurações do aplicativo. As cadeias de conexão exigem formatação especial nas chaves variáveis para acessar os valores.

Há um caso em que talvez você queira usar cadeias de conexão em vez de configurações de aplicativo para idiomas non-.NET. Determinados tipos de banco de dados do Azure são armazenados em backup junto com o aplicativo somente se você configurar uma cadeia de conexão para o 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:

  • SQL Server: SQLCONNSTR_
  • MySQL: MYSQLCONNSTR_
  • SQL do Azure: SQLAZURECONNSTR_
  • Personalizado: CUSTOMCONNSTR_
  • PostgreSQL: POSTGRESQLCONNSTR_
  • Hubs de Notificação do Azure: NOTIFICATIONHUBCONNSTR_
  • Barramento de Serviço do Azure: SERVICEBUSCONNSTR_
  • Hubs de Eventos do Azure: EVENTHUBCONNSTR_
  • Azure Cosmos DB: DOCDBCONNSTR_
  • Cache Redis: REDISCACHECONNSTR_

Observação

Aplicativos .NET que se direcionam ao PostgreSQL, Hubs de Notificação, Barramento de Serviço, Hub de Eventos, Azure Cosmos DB e Cache Redis devem definir a cadeia de conexão como Personalizada 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 obter etapas específicas de cada pilha de linguagem, consulte:

As cadeias de conexão são sempre criptografadas quando são armazenadas (criptografadas em repouso).

Observação

Você também pode resolver cadeias de conexão do Key Vault usando referências do Key Vault.

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

  2. No menu esquerdo do aplicativo, selecioneVariáveis de Ambiente de Configurações>. Em seguida, selecione 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, em Valor, selecione Mostrar valor. Para ver os valores ocultos de todas as cadeias de conexão, selecione Mostrar valores.

  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. Ao terminar, selecione Aplicar. Em seguida, selecione Aplicar na página Variáveis de ambiente .

Editar cadeias de conexão em massa

  1. Selecione Edição avançada.
  2. Editar cadeias de conexão na área de texto.
  3. Ao terminar, selecione Aplicar. Não se esqueça de também 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

Para definir as configurações de pilha de linguagem, consulte estes recursos:

Definir as configurações gerais

Para definir as configurações gerais, siga as etapas para suas ferramentas preferenciais.

  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ções>Configuração. Em seguida, selecione Configurações gerais.

    Captura de tela que mostra as seleções para abrir as 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: defina as configurações da pilha de software para executar o aplicativo, incluindo o idioma e as versões do SDK.

    Para aplicativos Linux, você pode selecionar a versão de runtime do idioma e definir um comando de inicialização opcional.

  • Configurações de plataforma: definir configurações para a plataforma de hospedagem, incluindo:

    • Plataforma: escolha 32 bits ou 64 bits. Somente aplicativos do Windows.

    • Estado FTP: permitir apenas FTPS ou desabilitar o FTP completamente.

    • 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 apenas ao protocolo HTTP/2 no TLS. O tráfego não criptografado continua a usar 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, consulte Fornecer segurança para um nome DNS personalizado com uma associação TLS/SSL no Serviço de Aplicativo.

    • Soquetes da Web: configure para ASP.NET SignalR ou socket.io, por exemplo.

    • Always On: ative se quiser manter o aplicativo carregado mesmo quando não houver tráfego.

      Quando Always On está desativado (padrão), o aplicativo é descarregado após 20 minutos sem nenhuma solicitação de entrada. O aplicativo descarregado pode causar alta latência para novas solicitações devido ao tempo de aquecimento.

      Quando Always On é ativado, o balanceador de carga front-end envia uma GET solicitação para a raiz do aplicativo a cada cinco minutos. O ping contínuo impede que o aplicativo seja descarregado.

      Always On é necessário para WebJobs contínuos ou para WebJobs acionados por 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 ao longo da sessão. Você pode definir essa opção como Desligado para aplicativos sem estado.

    • Proxy de afinidade de sessão: ative 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 se alinha com o nome do host encaminhado do proxy reverso.

    • Somente HTTPS: habilite se você quiser redirecionar todo o tráfego HTTP para HTTPS.

    • Versão mínima do TLS: selecione a versão mínima de criptografia TLS necessária para 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: exigir certificados de cliente na autenticação mútua.

Configurar documentos padrão

O documento padrão é a página da Web que aparece 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.

A configuração para configurar documentos padrão é apenas para 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 esquerdo do aplicativo, selecione Configuração. Em seguida, selecione 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.

O recurso de mapeamento de um diretório virtual para um caminho físico está disponível apenas 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ções>Configuração. Em seguida, selecione Mapeamentos de caminho.

  3. Selecione Novo aplicativo ou diretório virtual. Em seguida, execute uma destas ações:

    • Para mapear um diretório virtual para um caminho físico, deixe o Diretório selecionado. 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 o Diretório.

    Captura de tela que mostra as seleções para exibir a caixa de seleção do diretório.

  4. Selecione OK. Em seguida, selecione 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ções>Configuração. Em seguida, selecione Mapeamentos de caminho.

  3. Selecione Novo mapeamento de manipulador. Configure o manipulador da seguinte maneira:

    • Extensão. A extensão de arquivo que você deseja manipular, como *.php ou handler.fcgi.
    • Processador de script. O caminho absoluto do processador de script até você. O processador de script processa solicitações para arquivos que correspondem à extensão de arquivo. 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. Em seguida, selecione Salvar na página Configuração .

Configurar contêineres personalizados