Przenoszenie własnych funkcji do usługi Azure Static Web Apps
Usługa Azure Static Web Apps zapewnia integrację interfejsu API, aby umożliwić tworzenie aplikacji internetowych frontonu, które zależą od interfejsów API zaplecza dla danych i usług. Dwie opcje integracji interfejsu API to: funkcje zarządzane i przenoszenie własnych zapleczy. Aby uzyskać więcej informacji na temat różnic między tymi opcjami, zobacz omówienie.
W tym artykule pokazano, jak połączyć istniejącą aplikację usługi Azure Functions z zasobem usługi Azure Static Web Apps.
Uwaga
Integracja z usługą Azure Functions wymaga planu Static Web Apps Standard.
Integracja zaplecza nie jest obsługiwana w środowiskach żądań ściągnięcia usługi Static Web Apps.
Wymagania wstępne
Aby połączyć aplikację funkcji ze statyczną aplikacją internetową, musisz mieć istniejący zasób usługi Azure Functions i statyczną aplikację internetową.
Zasób | opis |
---|---|
Azure Functions | Jeśli jeszcze go nie masz, wykonaj kroki opisane w przewodniku Wprowadzenie do usługi Azure Functions . |
Istniejąca statyczna aplikacja internetowa | Jeśli jeszcze go nie masz, wykonaj kroki opisane w przewodniku wprowadzającym , aby utworzyć statyczną aplikację internetową No Framework . |
Przykład
Rozważmy istniejącą aplikację usługi Azure Functions, która uwidacznia punkt końcowy za pośrednictwem następującej lokalizacji.
https://my-functions-app.azurewebsites.net/api/getProducts
Po połączeniu możesz uzyskać dostęp do tego samego punktu końcowego za pośrednictwem api
ścieżki ze statycznej aplikacji internetowej, jak pokazano w tym przykładowym adresie URL.
https://red-sea-123.azurestaticapps.net/api/getProducts
Oba adresy URL punktów końcowych wskazują tę samą funkcję. Punkt końcowy w aplikacji funkcji musi mieć /api
prefiks, ponieważ usługa Static Web Apps pasuje do żądań wysyłanych do /api
i proxy całej ścieżki do połączonego zasobu.
Łączenie istniejącej aplikacji usługi Azure Functions
Usuwanie funkcji zarządzanych z zasobu usługi Static Web Apps (jeśli istnieje)
Przed skojarzeniem istniejącej aplikacji usługi Functions należy najpierw dostosować konfigurację statycznej aplikacji internetowej, aby usunąć funkcje zarządzane, jeśli istnieją.
- Ustaw
api_location
wartość na pusty ciąg (""
) w pliku konfiguracji przepływu pracy.
Łączenie aplikacji usługi Azure Functions z zasobem Static Web Apps
Otwórz wystąpienie usługi Static Web Apps w witrynie Azure Portal.
Z menu Ustawienia wybierz pozycję Interfejsy API.
W wierszu Production (Produkcja) wybierz pozycję Link (Link), aby otworzyć okno Połącz nowe zaplecze.
Wprowadź następujące ustawienia.
Ustawienie Wartość Typ zasobu zaplecza Wybierz pozycję Aplikacja funkcji. Subskrypcja Wybierz nazwę subskrypcji platformy Azure. Nazwa zasobu Wybierz nazwę aplikacji usługi Azure Functions. Miejsce zaplecza Wybierz nazwę miejsca dla funkcji platformy Azure. Wybierz Łącze.
Aplikacja usługi Azure Functions jest teraz mapowana na /api
trasę statycznej aplikacji internetowej.
Ważne
Pamiętaj, aby ustawić api_location
wartość na pusty ciąg (""
) w pliku konfiguracji przepływu pracy przed połączeniem istniejącej aplikacji usługi Functions. Ponadto wywołania zakładają, że aplikacja funkcji zewnętrznej zachowuje domyślny api
prefiks trasy. Wiele aplikacji usuwa ten prefiks w pliku host.json. Upewnij się, że prefiks znajduje się w konfiguracji. W przeciwnym razie wywołanie kończy się niepowodzeniem.
Wdrażanie
Odpowiadasz za skonfigurowanie przepływu pracy wdrażania dla aplikacji usługi Azure Functions.
Odłączanie aplikacji usługi Azure Functions
Odłączanie aplikacji functions z usługi Static Web Apps
Aby odłączyć aplikację funkcji ze statycznej aplikacji internetowej, wykonaj następujące kroki:
W witrynie Azure Portal przejdź do statycznej aplikacji internetowej.
Wybierz pozycję Interfejsy API z menu nawigacji.
Znajdź środowisko, które chcesz odłączyć, i wybierz nazwę aplikacji funkcji.
Wybierz pozycję Odłącz.
Po zakończeniu procesu odłączania żądania do tras rozpoczynających się od /api
nie są już kierowane do aplikacji usługi Azure Functions.
Uwaga
Aby zapobiec przypadkowemu ujawnieniu aplikacji funkcji do ruchu anonimowego, dostawca tożsamości utworzony przez proces łączenia nie zostanie automatycznie usunięty. Możesz usunąć dostawcę tożsamości o nazwie Azure Static Web Apps (połączone) z ustawień uwierzytelniania aplikacji funkcji.
Usuwanie uwierzytelniania z zasobu usługi Azure Functions
Aby umożliwić aplikacji usługi Azure Functions odbieranie ruchu anonimowego, wykonaj następujące kroki, aby usunąć dostawcę tożsamości:
W witrynie Azure Portal przejdź do zasobu usługi Azure Functions.
Wybierz pozycję Uwierzytelnianie z menu nawigacji.
Z listy dostawców tożsamości usuń dostawcę tożsamości powiązanego z zasobem Static Web Apps.
Wybierz pozycję Usuń uwierzytelnianie, aby usunąć uwierzytelnianie i zezwolić na ruch anonimowy do zasobu usługi Azure Functions.
Aplikacja funkcji może teraz odbierać ruch anonimowy.
Ograniczenia zabezpieczeń
Uwierzytelnianie i autoryzacja: jeśli zasady uwierzytelniania i autoryzacji nie zostały jeszcze skonfigurowane w istniejącej aplikacji usługi Functions, statyczna aplikacja internetowa ma wyłączny dostęp do interfejsu API. Aby aplikacja usługi Functions była dostępna dla innych aplikacji, dodaj innego dostawcę tożsamości lub zmień ustawienia zabezpieczeń, aby zezwolić na nieuwierzytelniony dostęp.
Uwaga
Jeśli włączysz uwierzytelnianie i autoryzację w połączonej aplikacji usługi Functions, musi ona używać uwierzytelniania usługi aplikacja systemu Azure i dostawcy autoryzacji w wersji 2.
Wymagana publiczna dostępność: istniejąca aplikacja usługi Functions nie musi stosować następujących konfiguracji zabezpieczeń.
- Ograniczanie adresu IP aplikacji usługi Functions.
- Ograniczanie ruchu za pośrednictwem łącza prywatnego lub punktów końcowych usługi.
Klucze dostępu funkcji: jeśli funkcja wymaga klucza dostępu, musisz podać klucz z wywołaniami ze statycznej aplikacji do interfejsu API.
Ograniczenia
- Tylko jedna aplikacja usługi Azure Functions jest dostępna dla jednej statycznej aplikacji internetowej.
- Wartość
api_location
w konfiguracji przepływu pracy musi być ustawiona na pusty ciąg. - Nieobsługiwane w środowiskach żądań ściągnięcia usługi Static Web Apps.
- Aplikacja usługi Azure Functions może reagować na różne wyzwalacze, ale statyczna aplikacja internetowa może uzyskiwać dostęp tylko do funkcji za pośrednictwem punktów końcowych Http.