Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W planach hostingu, które obsługują gniazda wdrożeniowe, aplikacja funkcji może działać w oddzielnych instancjach nazywanych gniazdami. Każdy slot stanowi oddzielne środowisko z własną nazwą hosta. Dostęp do punktu końcowego slotu zależy od ograniczeń sieciowych i dostępu, które konfigurujesz dla tego slotu. Jedno gniazdo jest zawsze gniazdem produkcyjnym, a dostępne gniazdo przejściowe można w razie potrzeby zamienić z gniazdem produkcyjnym.
Liczba dostępnych miejsc zależy od określonej opcji hostingu:
| Opcja hostingu | Miejsca (w tym produkcyjne) |
|---|---|
| Plan zużycia | 2 (jeden slot produkcyjny i jeden slot stacjonujący) |
| Plan elastycznego zużycia | Obecnie nie jest obsługiwane. W przypadku wdrożeń bez przestojów zobacz Strategie aktualizacji witryny w modelu Flex Consumption. |
| Plan Premium | 3 |
| Plan dedykowany (App Service) | 1-20 |
| Azure Container Apps | Sloty na rozmieszczenie nie mają zastosowania. Korzystaj z poprawek. |
Wybierz swój plan hostingowy na górze tego artykułu, aby zobaczyć wskazówki dotyczące Twojej aplikacji funkcjonalnej.
Wdrożenie bez slotów na Flex Consumption
Plan Flex Consumption nie obsługuje gniazd wdrożeniowych. Dla kontrolowanych wydań i wdrożeń bez przestojów, stosuj aktualizacje ciągłe jako strategię aktualizacji strony.
Wdrażanie z użyciem wersji w usłudze Azure Container Apps
Azure Functions on Azure Container Apps nie korzysta z gniazd wdrożeniowych. Użyj rewizji do zarządzania ruchem między wersjami aplikacji funkcji i kierowania nim.
W planach Consumption, Premium i Dedicated gniazda wdrożeniowe działają w następujący sposób:
- Podczas przełączania routingu nowe wywołania funkcji są kierowane do zamienionego slotu bez konieczności wyraźnego restartu aplikacji.
- Wymiana slotów nie gwarantuje zerowego przestoju. Aktualnie wykonywane funkcje mogą zostać zakończone, a podczas operacji zamiany slotów w aplikacjach skalowanych może dojść do pogorszenia dostępności. Aby dowiedzieć się, jak pisać funkcje bezstanowe i defensywne, zobacz Zwiększanie wydajności i niezawodności usługi Azure Functions. Jeśli wymagane są wdrożenia bez przestojów, rozważ plan Flex Consumption z aktualizacjami kroczącymi jako strategią aktualizacji witryny.
Dlaczego warto używać slotów?
Korzystanie ze slotów wdrożeniowych ma wiele zalet, takich jak:
- Różne środowiska do różnych celów: Używając różnych slotów, możesz rozróżnić instancje aplikacji przed przejściem na produkcję lub slot staging (etap).
- Wstępne rozgrzewanie: Wdróż do slotu zamiast bezpośrednio do środowiska produkcyjnego, aby rozgrzać aplikację przed udostępnieniem jej produkcyjnie. Ponadto użycie slotów zmniejsza opóźnienia dla obciążeń wyzwalanych przez HTTP. Wystąpienia są rozgrzewane przed wdrożeniem, co zmniejsza zimny start dla nowo wdrożonych funkcji.
- Łatwe przełączenia awaryjne: Po zamianie z produkcją, gniazdo z wcześniej przygotowaną aplikacją ma teraz poprzednią aplikację produkcyjną. Jeśli zmiany, które wprowadziłeś do slotu produkcyjnego, nie są takie, jakich się spodziewasz, możesz natychmiast cofnąć zamianę, aby odzyskać "ostatnią znaną dobrą instancję".
- Minimalizuj ponowne uruchamianie: zmiana ustawień aplikacji w miejscu produkcyjnym wymaga ponownego uruchomienia uruchomionej aplikacji. Zamiast tego możesz zmienić ustawienia w slocie testowym i przenieść te zmiany na środowisko produkcyjne przy użyciu przygotowanego wystąpienia. Zaleca się korzystanie z miejsc jako sposobu migracji między wersjami środowiska uruchomieniowego usługi Functions, aby zapewnić najwyższą dostępność. Aby dowiedzieć się więcej, zobacz Aktualizacja z minimalnym czasem przestoju.
Operacje zamiany
Podczas zamiany jeden slot jest źródłem, a drugi celem. Gniazdo źródłowe zawiera instancję aplikacji, którą zastosujesz do docelowego slotu. Poniższe kroki pomagają zmniejszyć czas przestoju w miejscu docelowym podczas zamiany:
Stosuj ustawienia: Stosuj ustawienia z docelowego slotu na wszystkie instancje slotu źródłowego. Na przykład zastosuj ustawienia produkcyjne do instancji testowej. Zastosowane ustawienia obejmują następujące kategorie:
- Ustawienia aplikacji specyficzne dla miejsca i parametry połączenia (jeśli dotyczy)
- Ustawienia ciągłego wdrażania (jeśli jest włączone)
- Ustawienia uwierzytelniania usługi App Service (jeśli są włączone)
Poczekaj na ponowne uruchomienia i dostępność: Wymiana czeka, aż każde wystąpienie w slocie źródłowym ukończy swoje ponowne uruchomienie i będzie dostępne dla żądań. Jeśli nie można ponownie uruchomić jakiegokolwiek wystąpienia, operacja zamiany przywraca wszystkie zmiany w miejscu źródłowym i zatrzymuje operację.
Aktualizacja routingu: Jeśli wszystkie instancje w źródłowym gnieździe pomyślnie zakończą rozgrzewanie, oba gniazda kończą zamianę przez przełączenie reguł routingu. Po wykonaniu tego kroku docelowe gniazdo (na przykład gniazdo produkcyjne) zawiera aplikację, która została wcześniej podgrzana w gnieździe źródłowym.
Powtórz operację: Teraz, gdy slot źródłowy ma aplikację z etapu przed zamianą wcześniej znajdującą się w slocie docelowym, przeprowadź tę samą operację, stosując wszystkie ustawienia i ponownie uruchamiając instancje dla slotu źródłowego.
Należy pamiętać o następujących kwestiach:
W dowolnym momencie operacji zamiany inicjowanie zamienionych aplikacji odbywa się w miejscu źródłowym. Miejsce docelowe pozostaje w trybie online, gdy miejsce źródłowe jest przygotowane, niezależnie od tego, czy zamiana zakończy się powodzeniem, czy niepowodzeniem.
Aby zamienić slot etapowy na slot produkcyjny, upewnij się, że slot produkcyjny zawsze jest slotem docelowym. W ten sposób operacja zamiany nie ma wpływu na aplikację produkcyjną.
Skonfiguruj ustawienia związane ze źródłami zdarzeń i powiązaniami jako ustawienia slotu wdrożeniaprzed rozpoczęciem zamiany. Oznaczanie ich jako "lepkie" z wyprzedzeniem zapewnia kierowanie zdarzeń i danych wyjściowych do odpowiedniego wystąpienia.
Gdy tworzysz nowy slot przejściowy, portal tworzy w nowym slocie wszystkie istniejące ustawienia ze slotu produkcyjnego, niezależnie od trwałości ustawienia.
Zarządzanie ustawieniami
Niektóre ustawienia konfiguracyjne są specyficzne dla danego slotu. Poniższe listy szczegółowo opisują, które ustawienia zmieniają się po wymianie slotów, a które pozostają takie same.
Ustawienia specyficzne dla miejsca:
- Publikowanie endpointów
- Niestandardowe nazwy domen
- Certyfikaty niepublicowe i ustawienia protokołu TLS/SSL
- Ustawienia skalowania
- Ograniczenia adresów IP
- Zawsze włączone
- Ustawienia diagnostyczne
- Współużytkowanie zasobów między źródłami (CORS)
- Prywatne punkty końcowe
Ustawienia niezwiązane ze slotem:
- Ogólne ustawienia, takie jak wersja frameworka, 32/64-bit oraz gniazda sieciowe
- Ustawienia aplikacji (można skonfigurować tak, aby były przypisane do slotu)
- Łańcuchy połączeń (można skonfigurować do przypisania do gniazda)
- Mapowania programu obsługi
- Certyfikaty publiczne
- Połączenia hybrydowe *
- Integracja z siecią wirtualną *
- Punkty końcowe usługi *
- Azure Content Delivery Network *
Funkcje oznaczone gwiazdką (*) nie są zamieniane zgodnie z projektem.
Uwaga
Niektóre ustawienia aplikacji, które dotyczą ustawień bez zamiany, nie są zamieniane. Na przykład ponieważ ustawienia diagnostyczne nie są zamieniane miejscami, powiązane ustawienia aplikacji, takie jak WEBSITE_HTTPLOGGING_RETENTION_DAYS i DIAGNOSTICS_AZUREBLOBRETENTIONDAYS, również nie są zamieniane miejscami, nawet jeśli nie są wyświetlane jako ustawienia slotu.
Tworzenie ustawienia wdrożenia
Ustawienia można oznaczyć jako ustawienie wdrożenia, co sprawia, że jest trwałe. Ustawienie "sticky" nie jest zmieniane podczas przełączania instancji aplikacji.
Jeśli tworzysz ustawienie wdrożenia w jednym slocie, upewnij się, że tworzysz to samo ustawienie z unikalną wartością w każdym innym slocie zaangażowanym w swap. Dzięki temu, gdy wartość ustawienia nie zmienia się, nazwy ustawień pozostają spójne między slotami. Ta spójność nazw zapewnia, że kod nie próbuje uzyskać dostępu do ustawienia zdefiniowanego w jednym miejscu, ale nie w innym.
Aby utworzyć ustawienie wdrożenia, wykonaj następujące czynności:
Przejdź do slotów wdrożenia w aplikacji Function, a następnie wybierz nazwę slotu.
Wybierz pozycję Konfiguracja, a następnie wybierz nazwę ustawienia, które chcesz zachować dla bieżącego slotu.
Wybierz ustawienie slotu wdrożeniowego, a następnie wybierz OK.
Po zamknięciu sekcji ustawień wybierz Zapisz, aby zachować zmiany.
Wdróż aplikację do slotu
Sloty są puste, gdy je tworzysz. Aby wdrożyć aplikację do slotu, możesz użyć dowolnej z obsługiwanych technologii wdrażania.
Jak skalują się sloty wdrożenia
Wszystkie gniazda skalują się do tej samej liczby pracowników, co gniazdo produkcyjne.
- W przypadku planów zużycie, slot jest skalowany w miarę skalowania aplikacji funkcji.
- W przypadku planów usługi App Service aplikacja jest skalowana do stałej liczby procesów roboczych. Sloty działają na tej samej liczbie pracowników co plan aplikacji.
Wyświetl przedziały czasowe
Informacje o istniejących slotach możesz przeglądać, korzystając z Azure CLI lub portalu Azure.
Skorzystaj z tych kroków, aby zobaczyć istniejące sloty w portalu:
Przejdź do aplikacji funkcyjnej.
Wybierz Miejsca wdrożenia i wyświetl istniejące miejsca wdrożenia.
Dodaj gniazdo
Możesz dodać slot, korzystając z Azure CLI lub portalu Azure.
Wykonaj następujące kroki, aby utworzyć miejsce w portalu:
Przejdź do aplikacji funkcyjnej.
Wybierz Sloty wdrożeniowe, a następnie wybierz + Dodaj slot.
Wpisz nazwę miejsca i wybierz pozycję Dodaj.
Możesz także utworzyć slot, używając szablonów Azure Resource Manager (ARM) lub plików Bicep. Przykład tworzenia aplikacji funkcji w planie konsumpcyjnym z miejscem wdrożenia można znaleźć w tym przewodniku Szybki start usługi Azure Resource Manager.
Dostęp do zasobów gniazda
Uzyskujesz dostęp do zasobów (wyzwalaczy HTTP i punktów końcowych administratora) w przedziale przejściowym tak samo jak w przedziale produkcyjnym. Jednak zamiast nazwy hosta aplikacji funkcji należy użyć nazwy hosta przeznaczonego dla danego slotu w adresie URL żądania, wraz z dowolnymi kluczami przeznaczonymi dla danego slotu. Ponieważ miejsca przejściowe to aplikacje na żywo, należy zabezpieczyć funkcje w miejscu przejściowym, tak jak w miejscu produkcyjnym.
Zamiana slotów
Możesz zmieniać sloty w produkcji i poza nią, korzystając z Azure CLI lub portalu Azure.
Wykonaj następujące kroki, aby przełączyć slot przejściowy na środowisko produkcyjne:
Przejdź do aplikacji funkcjonalnej.
Wybierz Sloty wdrożeniowe, a następnie wybierz Zamień.
Sprawdź ustawienia konfiguracji swapu i wybierz Swap.
Operacja zamiany może potrwać kilka sekund.
Wycofywanie zamiany
Jeśli zamiana spowoduje błąd lub chcesz cofnąć zamianę, możesz cofnąć stan początkowy. Aby powrócić do stanu przed zamianą, dokonaj następnej zamiany, aby cofnąć zamianę.
Usuń gniazdo
Możesz usunąć slot, korzystając z Azure CLI lub portalu Azure.
Wykonaj następujące kroki, aby usunąć miejsce z aplikacji w portalu:
Przejdź do slotów wdrożenia w aplikacji Function, a następnie wybierz nazwę slotu.
Wybierz Usuń.
Wpisz nazwę miejsca wdrożenia, które chcesz usunąć, a następnie wybierz pozycję Usuń.
Zamknij okienko potwierdzenia.
Zmień plan usługi App Service
W aplikacji funkcjonalnej działającej w ramach planu App Service możesz zmienić podstawowy plan App Service dla danego slotu.
Aby zmienić plan usługi App Service dla slotu, wykonaj następujące kroki:
Przejdź do slotów wdrożenia w aplikacji Function, a następnie wybierz nazwę slotu.
W obszarze Plan usługi App Service wybierz pozycję Zmień plan usługi App Service.
Wybierz plan, do którego chcesz przeprowadzić uaktualnienie, lub utwórz nowy plan.
Wybierz przycisk OK.
Kwestie wymagające rozważenia
Sloty wdrożeniowe usługi Azure Functions mają następujące uwagi:
- Liczba slotów dostępnych dla aplikacji zależy od planu. Plan Konsumpcji obsługuje łącznie dwa sloty: slot produkcyjny i jeden slot do inscenizacji. Więcej slotów jest dostępnych dla aplikacji działających w ramach innych planów. Aby uzyskać szczegółowe informacje, zobacz Limity usługi.
- Zamiana slotu resetuje klucze dla aplikacji, które mają
AzureWebJobsSecretStorageTypeustawienie aplikacji równefiles. - Po włączeniu slotów portal ustawia aplikację funkcjonalną na tryb tylko do odczytu.
- Zamiany slotów mogą się nie udać, gdy Twoja aplikacja funkcjonalna używa zabezpieczonego konta jako domyślnego konta (ustawionego w
AzureWebJobsStorage). Aby uzyskać więcej informacji, zobacz odwołanieWEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS. - Użyj nazw aplikacji funkcji krótszych niż 32 znaki. Nazwy dłuższe niż 32 znaki mogą powodować kolizje z ID hosta.