Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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:
- Durante a troca de roteamento, novas invocações de disparo de função são encaminhadas para o slot trocado sem necessidade de um reinício explícito da aplicação.
- As trocas de slot não garantem tempo de inatividade zero. As funções atualmente em execução podem ser terminadas e pode ocorrer degradação da disponibilidade em aplicações escaladas durante operações de mudança de slots. Para saber como escrever funções defensivas e sem monitoração de estado, consulte Melhorar o desempenho e a fiabilidade do Funções do Azure. Se implementações sem tempo de inatividade forem obrigatórias, considere o plano Flex Consumption com atualizações progressivas como estratégia de atualização do site.
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:
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:
- Configurações de aplicativo específicas do slot e cadeias de conexão (se aplicável)
- Configurações de implantação contínua (se habilitadas)
- Configurações de autenticação do Serviço de Aplicativo (se habilitadas)
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.
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.
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:
Aceda a slots de implementação na aplicação de funções e, em seguida, selecione o nome do slot.
Selecione Configuração e, em seguida, selecione o nome da configuração que deseja manter com o slot atual.
Selecione Configuração do slot de implantação e, em seguida, selecione OK.
Depois de fechar a secção de definições, selecione Guardar para manter as alterações.
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:
Aceda à sua aplicação de funções.
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:
Aceda à sua aplicação de funções.
Selecione Slots de Implementação e, em seguida, selecione + Adicionar Slot.
Digite o nome do slot e selecione Adicionar.
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:
Vá para o aplicativo de função.
Selecione Ranhuras de Implementação e, em seguida, selecione Trocar.
Verifique as definições de configuração para sua permuta e selecione Trocar.
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:
Aceda a slots de implementação na aplicação de funções e, em seguida, selecione o nome do slot.
Selecione Eliminar.
Digite o nome do slot de implantação que deseja excluir e selecione Excluir.
Feche o painel de confirmaçã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:
Aceda a slots de implementação na aplicação de funções e, em seguida, selecione o nome do slot.
Em Plano do Serviço de Aplicativo, selecione Alterar plano do Serviço de Aplicativo.
Selecione o plano para o qual deseja atualizar ou crie um novo plano.
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
AzureWebJobsSecretStorageTypeconfiguração de aplicativo igual afiles. - 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 aWEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGSreferê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.