Slots de implantação do Funções do Azure

Em planos de alojamento que suportam slots de implementação, a tua aplicação de funções pode executar instâncias separadas chamadas slots. Cada slot é um ambiente separado com o seu próprio nome de host. O acesso ao endpoint de um slot depende das restrições de rede e de acesso que configuras para esse slot. Um slot é sempre o slot de produção, e podes trocar um slot de encenação disponível pelo slot de produção a pedido.

O número de slots disponíveis depende da sua opção de hospedagem específica:

Opção de hospedagem Faixas horárias (incluindo produção)
Plano de consumo 2 (um slot de produção e um slot de testes)
Plano de consumo Flex Não suportado atualmente. Para implementações sem tempo de inatividade, consulte estratégias de atualização de site no Flex Consumption.
Plano Premium 3
Plano dedicado (Serviço de Aplicativo) 1-20
Aplicativos de contêiner do Azure As vagas de destacamento não se aplicam. Use revisões.

Selecione o seu plano de alojamento na parte superior deste artigo para ver as orientações aplicáveis à sua aplicação de funções.

Implementar sem ranhuras em Flex Consumption

O plano Flex Consumption não suporta espaços de implantação. Para lançamentos controlados e implementações sem tempo de inatividade, utilize atualizações contínuas como estratégia de atualização do site.

Implementar com revisões no Azure Container Apps

O Funções do Azure no Azure Container Apps não usa slots de deployment. Use revisões para gerir e direcionar o tráfego entre versões da sua aplicação funcional.

Nos planos Consumption, Premium e Dedicated, os slots de implementação comportam-se da seguinte forma:

Porquê utilizar slots?

Há muitas vantagens em usar slots de implantação, incluindo:

  • Ambientes diferentes para propósitos diferentes: Ao usar diferentes slots, pode diferenciar as instâncias da aplicação antes de mudar para produção ou para um slot de staging.
  • Pré-aquecimento: Implemente num slot em vez de diretamente em produção para pré-aquecer a aplicação antes de ficar online. Além disso, usar slots reduz a latência para cargas de trabalho ativadas por HTTP. As instâncias são aquecidas antes da implantação, o que reduz o arranque a frio para funções recém-implantadas.
  • Fallbacks fáceis: após uma troca com a produção, o slot que tinha um aplicativo anteriormente preparado agora tem o aplicativo que estava em produção anteriormente. Se as alterações que moveste para o slot de produção não forem as que esperas, podes anular imediatamente a troca para recuperar a tua "última instância válida conhecida".
  • Minimizar reinicializações: alterar as configurações do aplicativo em um slot de produção requer uma reinicialização do aplicativo em execução. Em vez disso, pode alterar as definições num slot de preparação e transferir as alterações de configuração para produção com uma instância pré-aquecida. Os slots são a maneira recomendada de migrar entre versões de tempo de execução do Functions, mantendo a mais alta disponibilidade. Para saber mais, consulte Atualização para minimizar o tempo de inatividade.

Operações de swap

Durante uma troca, um slot é a fonte e o outro o alvo. O slot de origem contém a instância da aplicação que é aplicada ao slot de destino. Os seguintes passos ajudam a reduzir o tempo de inatividade no slot alvo durante uma troca:

  1. Aplicar definições: Aplicar definições do slot de destino a todas as instâncias do slot de origem. Por exemplo, aplique as definições de produção à instância de teste. As configurações aplicadas incluem as seguintes categorias:

  2. Aguarde reinicializações e disponibilidade: a troca aguarda que cada instância no slot de origem conclua sua reinicialização e esteja disponível para solicitações. Se alguma instância falhar ao reiniciar, a operação de permuta reverte todas as alterações para o slot de origem e interrompe a operação.

  3. Atualização do encaminhamento: Se todas as instâncias no slot de origem forem inicializadas com sucesso, os dois slots concluem a troca ao alternarem as regras de encaminhamento. Após essa etapa, o slot de destino (por exemplo, o slot de produção) tem o aplicativo que foi previamente aquecido no slot de origem.

  4. Operação repetida: Agora que o slot de origem tem o aplicativo de pré-troca anteriormente no slot de destino, conclua a mesma operação aplicando todas as configurações e reiniciando as instâncias do slot de origem.

Tenha em consideração os seguintes pontos:

  • Em qualquer ponto da operação de troca, a inicialização dos aplicativos trocados acontece no slot de origem. O slot de destino permanece on-line enquanto o slot de origem é preparado, independentemente de a troca ser bem-sucedida ou falhar.

  • Ao permutar um slot de teste com o slot de produção, certifique-se de que o slot de produção seja sempre o slot alvo. Dessa forma, a operação de permuta não afeta seu aplicativo de produção.

  • Configure definições relacionadas com origens de eventos e associações como definições da ranhura de implementaçãoantes de iniciar uma troca. Marcá-los como "fixo" com antecedência garante que os eventos e saídas sejam direcionados para a instância adequada.

  • Quando cria um novo slot de teste, o portal cria no novo slot todas as definições existentes no slot de produção, independentemente da persistência da definição.

Gerir configurações

Algumas definições de configuração são específicas de uma posição. As listas seguintes detalham quais as definições que mudam quando trocas de slot, e quais permanecem as mesmas.

Configurações específicas do slot:

  • Publicação de pontos de extremidade
  • Nomes de domínio personalizados
  • Certificados não públicos e configurações TLS/SSL
  • Configurações de escala
  • Restrições de IP
  • Sempre Ligado
  • Definições de diagnóstico
  • Partilha de recursos entre origens (CORS)
  • Pontos finais privados

Configurações não específicas do slot:

  • Definições gerais, como versão do framework, 32/64 bits e web sockets
  • Configurações da aplicação (podem ser configuradas para aderir a uma instância específica)
  • Cadeias de conexão (podem ser configuradas para aderir a um slot)
  • Mapeamentos do manipulador
  • Certificados públicos
  • Conexões híbridas *
  • Integração de rede virtual *
  • Pontos finais de serviço *
  • Rede de Entrega de Conteúdo do Azure *

Os recursos marcados com um asterisco (*) não são trocados, por design.

Nota

Certas definições da app que se aplicam a definições não trocadas não são trocadas. Por exemplo, como as definições de diagnóstico não são trocadas, as definições relacionadas da aplicação, como WEBSITE_HTTPLOGGING_RETENTION_DAYS e DIAGNOSTICS_AZUREBLOBRETENTIONDAYS, também não são trocadas, mesmo que não apareçam como definições de slot.

Criar uma configuração de implantação

Você pode marcar as configurações como uma configuração de implantação, o que a torna persistente. Uma configuração fixa não é trocada com a instância do aplicativo.

Se criares uma configuração de deployment num dos slots, certifica-te de que crias a mesma configuração com um valor único em qualquer outro slot envolvido numa troca. Dessa forma, enquanto o valor de uma configuração não é alterado, os nomes das configurações permanecem consistentes entre os slots. Essa consistência de nome garante que seu código não tente acessar uma configuração definida em um slot, mas não em outro.

Use as seguintes etapas para criar uma configuração de implantação:

  1. Aceda a slots de implementação na aplicação de funções e, em seguida, selecione o nome do slot.

    A captura de tela mostra os slots de implantações no portal do Azure.

  2. Selecione Configuração e, em seguida, selecione o nome da configuração que deseja manter com o slot atual.

    A captura de tela mostra onde definir a configuração do aplicativo para um slot no portal do Azure.

  3. Selecione Configuração do slot de implantação e, em seguida, selecione OK.

    A captura de tela mostra onde definir a configuração do slot de implantação.

  4. Depois de fechar a secção de definições, selecione Guardar para manter as alterações.

    A captura de tela mostra como salvar a configuração do slot de implantação.

Implante uma aplicação num slot

Os slots ficam vazios quando se cria um novo slot. Você pode usar qualquer uma das tecnologias de implantação suportadas para implantar seu aplicativo em um slot.

Como escalam os slots de implantação

Todos os slots são dimensionados para o mesmo número de trabalhadores que o slot de produção.

  • Para planos de consumo, o slot é dimensionado à medida que a aplicação de funções é dimensionada.
  • Para planos do Serviço de Aplicativo, o aplicativo é dimensionado para um número fixo de trabalhadores. Os slots são executados no mesmo número de trabalhadores que o plano do aplicativo.

Ver espaços

Pode consultar informações sobre as slots existentes utilizando o CLI do Azure ou o portal Azure.

Utilize estes passos para visualizar os espaços existentes no portal:

  1. Aceda à sua aplicação de funções.

  2. Selecione os espaços de implantação e veja os espaços existentes.

Adicionar um slot

Pode adicionar um espaço usando a CLI do Azure ou o portal Azure.

Use estas etapas para criar um slot no portal:

  1. Aceda à sua aplicação de funções.

  2. Selecione Slots de Implementação e, em seguida, selecione + Adicionar Slot.

    A captura de tela mostra a adição de um slot de implantação do Funções do Azure.

  3. Digite o nome do slot e selecione Adicionar.

    A captura de tela mostra a nomeação do slot de implantação do Funções do Azure.

Também pode criar um slot utilizando modelos do Azure Resource Manager (ARM) ou ficheiros Bicep. Para obter um exemplo de como criar uma função num plano de consumo com um slot de implantação, consulte este guia de início rápido do Azure Resource Manager.

Aceder aos recursos da slot

Você acede recursos (gatilhos HTTP e pontos de extremidade de administrador) num slot de preparação da mesma forma que no slot de produção. No entanto, em vez do nome de host do aplicativo de função, você usa o nome de host específico do slot na URL da solicitação, juntamente com quaisquer chaves específicas do slot. Como os slots de teste são aplicativos ativos, deve-se proteger as suas funções num slot de teste tal como se faria no slot de produção.

Trocar slots

Pode trocar slots de entrada e saída da produção usando o CLI do Azure ou o portal Azure.

Siga estes passos para trocar um slot de ensaio para a produção:

  1. Vá para o aplicativo de função.

  2. Selecione Ranhuras de Implementação e, em seguida, selecione Trocar.

    Captura de ecrã que mostra a página do slot de implementação com a ação Adicionar slot selecionada.

  3. Verifique as definições de configuração para sua permuta e selecione Trocar.

    Captura de tela mostrando a troca do slot de implantação.

A operação de swap pode levar alguns segundos.

Reverter uma troca

Se uma troca resultar num erro ou quiseres desfazer uma troca, podes voltar ao estado inicial. Para retornar ao estado preswaped, faça outro swap para reverter o swap.

Remover uma ranhura

Pode remover um slot usando a CLI do Azure ou o portal Azure.

Siga estes passos para eliminar um slot da sua aplicação no portal:

  1. Aceda a slots de implementação na aplicação de funções e, em seguida, selecione o nome do slot.

    A captura de tela mostra a página onde você encontra slots no portal do Azure.

  2. Selecione Eliminar.

    Captura de ecrã que mostra a página de Visão Geral com a ação Apagar selecionada.

  3. Digite o nome do slot de implantação que deseja excluir e selecione Excluir.

    A captura de tela mostra a exclusão do slot de implantação no portal do Azure.

  4. Feche o painel de confirmação.

    A captura de ecrã mostra a confirmação de eliminação do slot de implementação.

Alterar plano do Serviço de Aplicações

Com uma aplicação de funções executada num plano do Serviço de Aplicações, pode alterar o plano do Serviço de Aplicações subjacente de um slot.

Use as seguintes etapas para alterar o plano do Serviço de Aplicativo de um slot:

  1. Aceda a slots de implementação na aplicação de funções e, em seguida, selecione o nome do slot.

    A captura de tela mostra os slots no portal do Azure.

  2. Em Plano do Serviço de Aplicativo, selecione Alterar plano do Serviço de Aplicativo.

  3. Selecione o plano para o qual deseja atualizar ou crie um novo plano.

    A captura de tela mostra onde alterar o plano do Serviço de Aplicativo no portal do Azure.

  4. Selecione OK.

Considerações

Os slots de implantação do Funções do Azure têm as seguintes considerações:

  • O número de slots disponíveis para um aplicativo depende do plano. O plano de Consumo suporta dois slots no total: o slot de produção e um slot de teste. Mais espaços estão disponíveis para aplicações em execução sob outros planos. Para obter detalhes, consulte Limites de serviço.
  • A troca de um slot redefine chaves para aplicativos que têm uma AzureWebJobsSecretStorageType configuração de aplicativo igual a files.
  • Quando ativas as slots, o portal define a tua aplicação de funções para modo só leitura.
  • As trocas de slot podem falhar quando a sua app de funções usa uma conta de armazenamento segura como conta de armazenamento padrão (definida em AzureWebJobsStorage). Para obter mais informações, consulte a WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS referência.
  • Use nomes de aplicativos de função com menos de 32 caracteres. Nomes com mais de 32 caracteres podem causar colisões no ID do hospedeiro.

Próximos passos