Udostępnij za pośrednictwem


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.

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ą.

  1. Ustaw api_location wartość na pusty ciąg ("") w pliku konfiguracji przepływu pracy.
  1. Otwórz wystąpienie usługi Static Web Apps w witrynie Azure Portal.

  2. Z menu Ustawienia wybierz pozycję Interfejsy API.

  3. 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.
  4. 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.

Aby odłączyć aplikację funkcji ze statycznej aplikacji internetowej, wykonaj następujące kroki:

  1. W witrynie Azure Portal przejdź do statycznej aplikacji internetowej.

  2. Wybierz pozycję Interfejsy API z menu nawigacji.

  3. Znajdź środowisko, które chcesz odłączyć, i wybierz nazwę aplikacji funkcji.

  4. 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:

  1. W witrynie Azure Portal przejdź do zasobu usługi Azure Functions.

  2. Wybierz pozycję Uwierzytelnianie z menu nawigacji.

  3. Z listy dostawców tożsamości usuń dostawcę tożsamości powiązanego z zasobem Static Web Apps.

  4. 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.

Następne kroki