Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Em planos de hospedagem que suportam slots de implantação, seu aplicativo de funções pode rodar instâncias separadas chamadas slots. Cada slot é um ambiente separado com seu próprio nome de host. O acesso ao endpoint de um slot depende das restrições de rede e acesso que você configura para esse slot. Um slot é sempre o slot de produção, e você pode trocar um slot de staging disponível pelo slot de produção sob demanda.
O número de slots disponíveis depende da opção de hospedagem específica:
| Opção de hospedagem | Slots (incluindo produção) |
|---|---|
| Plano de Consumo | 2 (um slot de produção e um slot de staging) |
| Plano de Consumo Flexível | Não há suporte atualmente. Para implantações sem tempo de inatividade, consulte Estratégias de atualização de site no Consumo Flexível. |
| Plano Premium | 3 |
| Plano dedicado (Serviço de Aplicativo) | 1-20 |
| Aplicativos de Contêiner do Azure | Vagas de implantação não se aplicam. Use revisões. |
Selecione seu plano de hospedagem no topo deste artigo para ver as orientações que se aplicam ao seu aplicativo de eventos.
Implantar sem slots no Consumo Flexível
O plano Flex Consumption não suporta slots de implantação. Para lançamentos controlados e implantações sem tempo de inatividade, use atualizações contínuas como estratégia de atualização do site.
Implantar com revisões nos Aplicativos de Contêiner do Azure
Azure Functions no Aplicativos de Contêiner do Azure não usa slots de implantação. Use revisões para gerenciar e direcionar o tráfego entre versões do seu aplicativo de funções.
Nos planos Consumo, Premium e Dedicado, os slots de implantação funcionam da seguinte forma:
- Durante a troca de roteamento, novas invocações de gatilhos de função são roteadas para o slot trocado sem exigir um reinício explícito da aplicação.
- Trocas de slot não garantem tempo de inatividade zero. Atualmente, funções em execução podem ser encerradas, e pode haver degradação da disponibilidade em aplicativos escalados durante operações de troca de slot. Para aprender a escrever funções sem estado e defensivas, consulte Melhorar o desempenho e a confiabilidade do Azure Functions. Se implantações sem tempo de inatividade for um requisito, considere o plano Flex Consumption com atualizações contínuas como estratégia de atualização do site.
Por que usar os slots?
Há várias vantagens em usar slots de implantação, incluindo:
- Ambientes diferentes para propósitos diferentes: Usando diferentes slots, você pode diferenciar instâncias de aplicativos antes de trocar para produção ou para um slot de staging.
- Aquecimento prévio: Implante em um slot em vez de diretamente na produção para preparar o aplicativo antes de entrar em operação. Além disso, usar slots reduz a latência para cargas de trabalho acionadas por HTTP. As instâncias são preparadas antes da implantação, o que reduz a partida a frio (início) para funções implantadas recentemente.
- Reversão fácil: após a troca, o slot com o aplicativo de preparo anterior terá o aplicativo de produção anterior. Se as alterações que você colocou no slot de produção não forem o que você esperava, poderá desfazer a troca imediatamente para recuperar sua "ú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, você pode alterar as configurações em um slot de preparo e trocar as configurações de alteração para produção por uma instância pré-inicializada. Os slots são a maneira recomendada de migrar entre as versões de runtime do Functions, mantendo a maior disponibilidade. Para saber mais, confira Atualização com o mínimo de tempo de inatividade.
Operações de troca
Durante uma troca, um slot é o de origem e o outro é o de destino. O slot de origem contém a instância da aplicação que você aplica ao slot de destino. As etapas a seguir ajudam a reduzir o tempo de inatividade no slot de destino durante uma troca:
Aplicar configurações: Aplicar configurações do slot de destino para todas as instâncias do slot de origem. Por exemplo, aplique as configurações de produção à instância de staging. As configurações aplicadas incluem as seguintes categorias:
- Configurações do aplicativo e cadeias de conexão específicas do slot, 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 as reinicializações e a disponibilidade: a troca espera que cada instância no slot de origem conclua sua reinicialização e esteja disponível para solicitações. Se alguma instância não conseguir reiniciar, a operação de troca reverte todas as alterações no slot de origem e interrompe a operação.
Atualização do roteamento: Se todas as instâncias no slot de origem forem inicializadas com sucesso, os dois slots concluem a permuta ao alternar as regras de roteamento. Após esta etapa, o slot de destino (por exemplo, o slot de produção) tem o aplicativo que foi anteriormente ativado no slot de origem.
Repita a operação: agora que o slot de origem tem o aplicativo da pré-troca que antes estava no slot de destino, execute a mesma operação, aplicando todas as configurações e reiniciando as instâncias no slot de origem.
Tenha em mente os seguintes pontos:
Em algum ponto da operação de troca, a inicialização dos aplicativos trocados acontece no slot de origem. O slot de destino permanece online enquanto o slot de origem é preparado, independentemente da troca ser bem-sucedida ou falhar.
Para trocar um slot de preparo pelo slot de produção, certifique-se de que o slot de produção seja sempre o slot de destino. Dessa forma, a operação de troca não afeta seu aplicativo de produção.
Configure as configurações relacionadas a fontes de eventos e vinculações como configurações de slot de implantaçãoantes de iniciar uma troca. Marcá-los como "fixos" antecipadamente garante que os eventos e as saídas sejam direcionados para a instância apropriada.
Quando você cria um novo slot de staging, o portal cria no novo slot todas as configurações existentes do slot de produção, independentemente da aderência da configuração.
Gerenciar configurações
Algumas configurações são específicas de um slot. As listas a seguir detalham quais configurações mudam quando você troca de slot, e quais permanecem as mesmas.
Configurações específicas do slot:
- Pontos de extremidade de publicação
- Nomes de domínio personalizados
- Certificados não públicos e configurações de TLS/SSL
- Configurações de dimensionamento
- Restrições de IP
- Always On
- Configurações de diagnóstico
- CORS (compartilhamento de recursos entre origens)
- Pontos de extremidade privados
Configurações não específicas do slot:
- Configurações gerais, como versão do framework, 32/64 bits e web sockets
- Configurações do aplicativo (podem ser configuradas para fixarem-se a um slot)
- Cadeias de conexão (podem ser configuradas para fixarem-se a um slot)
- Mapeamentos de manipulador
- Certificados públicos
- Conexões híbridas *
- Integração de rede virtual *
- Pontos de extremidade de serviço *
- Rede de Distribuição de Conteúdo do Azure *
Os recursos marcados com um asterisco (*) não são trocados por design.
Observação
Certas configurações do app que se aplicam a configurações não trocadas não são trocadas. Por exemplo, como as configurações de diagnóstico não estão trocadas, configurações relacionadas ao aplicativo como WEBSITE_HTTPLOGGING_RETENTION_DAYS e DIAGNOSTICS_AZUREBLOBRETENTIONDAYS não estão trocadas, mesmo que não apareçam como configurações de slot.
Criar um slot de implantação
Você pode marcar as configurações como uma configuração de implantação, o que o torna fixo. Uma configuração fixa não muda com a instância do aplicativo.
Se você criar uma configuração de implantação em um slot, certifique-se de criar a mesma configuração com um valor único em qualquer outro slot envolvido em uma troca. Dessa forma, embora o valor de uma configuração não mude, os nomes de configuração 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 outra.
Use as seguintes etapas para criar uma configuração de implantação:
Vá em Espaços de Implantação no app da função e então selecione o nome do slot.
Selecione Configuração e o nome da configuração que você deseja fixar no slot atual.
Selecione Configuração do slot de implantação e clique em OK.
Depois que a seção de configurações fechar, selecione Salvar para manter as alterações.
Implante um aplicativo em um slot
Os slots ficam vazios quando você cria um slot. Use qualquer uma das tecnologias de implantação com suporte para implantar seu aplicativo em um slot.
Como os slots de implantação escalam
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 conforme o aplicativo de funções é dimensionado.
- Para planos do Serviço de Aplicativo, o aplicativo é dimensionado para um número fixo de trabalhadores. Os slots são executados com o mesmo número de trabalhadores que o plano do aplicativo.
Exibir os slots
Você pode visualizar informações sobre os slots existentes usando tanto o CLI do Azure quanto o portal Azure.
Use estes passos para visualizar os slots existentes no portal:
Acesse o aplicativo da sua função.
Selecione os slots de implantação e veja os slots existentes.
Adicionar um slot
Você pode adicionar um slot usando tanto o CLI do Azure quanto o portal do Azure.
Use estas etapas para criar um slot no portal:
Acesse o aplicativo da sua função.
Selecione Slots de implantação e + Adicionar Slot.
Digite o nome do slot e selecione Adicionar.
Você também pode criar um slot usando modelos do Azure Resource Manager (ARM) ou arquivos Bicep. Para obter um exemplo de como criar um aplicativo de funções em um plano de consumo com um slot de implantação, consulte este guia de início rápido do Azure Resource Manager.
Recursos de slot de acesso
Você acessa recursos (gatilhos HTTP e pontos de extremidade de administrador) em um slot de preparo da mesma forma que o slot de produção. No entanto, em vez do nome do host do aplicativo de funções, você usa o nome do host específico do slot na URL de solicitação, juntamente com quaisquer chaves específicas de slot. Como os slots de preparo são aplicativos dinâmicos, você deve proteger suas funções em um slot de preparo como faria no slot de produção.
Trocar slots
Você pode trocar slots dentro e fora da produção usando tanto a CLI do Azure quanto o portal do Azure.
Use estas etapas para trocar um slot de preparo para produção:
Vá para o aplicativo de funções.
Selecione Slots de implantação e Trocar.
Verifique as configurações de sua troca e selecione Trocar.
Essa operação de troca pode levar alguns segundos.
Reverter a troca
Se uma troca resultar em erro ou você quiser desfazer a troca, pode reverter para o estado inicial. Para retornar ao estado de pré-troca, faça outra troca para reverter a troca.
Remover um slot
Você pode remover um slot usando tanto a CLI do Azure quanto o portal do Azure.
Use estas etapas para remover um slot do seu aplicativo no portal:
Vá em Espaços de Implantação no app da função e então selecione o nome do slot.
Selecione Excluir.
Digite o nome do slot de implantação que você deseja excluir e selecione Excluir.
Feche o painel de confirmação.
Alterar plano do Serviço de Aplicativo
Com um aplicativo de funções executado em um plano do App Service, você pode alterar, para um slot, o plano do App Service subjacente.
Use as etapas a seguir para alterar o plano do Serviço de Aplicativo de um slot:
Vá em Espaços de Implantação no app da função e então 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 você deseja atualizar ou crie um novo plano.
Selecione OK.
Considerações
Os slots de implantação do Azure Functions têm as seguintes considerações:
- O número de slots disponíveis para um aplicativo depende do plano. O plano de Consumo oferece suporte a apenas dois slots no total: o slot de produção e um slot de homologação. Mais slots estão disponíveis para aplicativos em execução em outros planos. Confira Limites de serviço para obter detalhes.
- A troca de slot redefine as chaves para os aplicativos que têm uma configuração de aplicativo
AzureWebJobsSecretStorageTypeigual afiles. - Quando você ativa os slots, o portal configura seu aplicativo de funções para modo somente leitura.
- Trocas de slot podem falhar quando seu app de funções usa uma conta de armazenamento segura como conta padrão (configurada em
AzureWebJobsStorage). Para obter mais informações, confira a referênciaWEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS. - Use nomes de aplicativo de funções com menos de 32 caracteres. Nomes com mais de 32 caracteres podem causar colisões no ID do host.