Jak używać zabezpieczonego konta magazynu w usłudze Azure Functions

Usługa Azure Functions wymaga konta Azure Storage podczas tworzenia aplikacji funkcji. To domyślne konto magazynu jest używane przez środowisko wykonawcze usługi Functions do utrzymania prawidłowego działania aplikacji funkcji. Aby uzyskać więcej informacji, zobacz Zagadnienia magazynowania dla Azure Functions. W tym artykule pokazano, jak używać zabezpieczonego konta pamięci masowej jako domyślnego konta pamięci masowej. Aby zapoznać się ze szczegółowym samouczkiem dotyczącym tworzenia aplikacji funkcji z ograniczeniami dostępu przychodzącego i wychodzącego, zobacz samouczek Integracja z siecią wirtualną. Aby dowiedzieć się więcej na temat usługi Azure Functions i sieci, zobacz Opcje sieci usługi Azure Functions.

Ogranicz konto storage do sieci wirtualnej

Podczas tworzenia aplikacji funkcyjnej tworzysz nowe konto magazynu albo łączysz się z istniejącym. Należy pamiętać o tych kwestiach podczas pracy z zabezpieczonym kontem magazynu.

  • Aby utworzyć aplikację funkcji, która używa istniejącego zabezpieczonego konta magazynowego jako domyślnego konta magazynowego, musisz utworzyć aplikację w portalu Azure lub przy użyciu szablonu ARM lub wdrożeń Bicep.
  • W przypadku korzystania z zabezpieczonego konta magazynu z planem skalowania dynamicznego należy hostować swoje funkcje w planie Flex Consumption. Ten plan obsługuje zarówno zabezpieczone konta przechowywania, jak i połączenia oparte na zarządzanych tożsamościach do przechowywania, co jest najbezpieczniejszą opcją połączenia.
  • Wszystkie poziomy zarówno planu Dedicated (App Service), jak i planu Elastic Premium obsługują także bezpieczne konta magazynowe. Istnieją jednak kompromisy w przypadku używania tożsamości zarządzanych do nawiązywania połączenia z poziomu aplikacji planu Premium. Aby uzyskać więcej informacji, zobacz Tworzenie aplikacji bez usługi Azure Files.
  • Plan Consumption nie obsługuje sieci wirtualnych, więc nie można nawiązać połączenia z zabezpieczonym kontem magazynu, gdy działa w ramach planu Consumption. Aby korzystać z hostingu funkcji bezserwerowych, należy zamiast tego ponownie utworzyć aplikację do uruchomienia w planie Flex Consumption.
  • W tym artykule pokazano, jak utworzyć aplikację funkcji w planie Premium, która łączy się z zabezpieczonym kontem magazynu za pomocą ciągu połączenia do konta magazynu. Aby zapewnić najlepszą ochronę poświadczeń konta magazynu, należy zamiast tego używać tożsamości zarządzanych podczas nawiązywania połączenia z kontem magazynu. Zamiast tego, postępuj zgodnie z przewodnikiem Szybki start: tworzenie i wdrażanie funkcji w usłudze Azure Functions przy użyciu Azure Developer CLI, aby utworzyć aplikację funkcji w planie Flex Consumption, która łączy się z nowym zabezpieczonym kontem storage przy użyciu tożsamości zarządzanych.
  • Aby uzyskać listę wszystkich ograniczeń dotyczących kont magazynu, zobacz Wymagania dotyczące konta magazynu.

Bezpieczne przechowywanie podczas tworzenia aplikacji funkcji

Aplikację funkcji można utworzyć wraz z nowym kontem przechowywania zabezpieczonym w ramach sieci wirtualnej. W poniższych sekcjach pokazano, jak utworzyć te zasoby przy użyciu witryny Azure Portal lub szablonów wdrażania.

Wykonaj kroki opisane w sekcji Tworzenie aplikacji funkcji w planie Premium. W tej sekcji samouczka dotyczącego sieci wirtualnej pokazano, jak utworzyć aplikację typu function app, która łączy się z magazynem za pośrednictwem prywatnych punktów końcowych.

Uwaga

Podczas tworzenia aplikacji funkcji w portalu Azure możesz również wybrać istniejące zabezpieczone konto magazynu w karcie Magazyn. Jednakże musisz skonfigurować odpowiednie ustawienia sieciowe w aplikacji funkcji, aby mogła łączyć się za pośrednictwem sieci wirtualnej używanej do zabezpieczenia konta magazynu. Jeśli nie masz uprawnień do konfigurowania sieci lub nie masz w pełni przygotowanej sieci, wybierz pozycję Konfiguruj sieć po utworzeniu na karcie Sieć. Sieć dla nowej aplikacji funkcji można skonfigurować w portalu w obszarze Ustawienia>Sieci.

Bezpieczne przechowywanie dla istniejącej aplikacji funkcjonalnej

Jeśli masz istniejącą aplikację funkcji Azure, możesz bezpośrednio skonfigurować ustawienia sieciowe dla konta magazynu używanego przez tę aplikację. Jednak ten proces powoduje, że Twoja aplikacja funkcji jest wyłączona podczas konfigurowania sieci i podczas jej ponownego uruchamiania.

Aby zminimalizować przestoje, możesz zamienić istniejące konto magazynu na nowe, zabezpieczone konto magazynu.

1. Włącz integrację z siecią wirtualną

W ramach wymagań wstępnych należy włączyć integrację sieci wirtualnej dla aplikacji funkcji:

  1. Wybierz aplikację funkcjonalną ze swoim kontem magazynowym, które nie ma włączonych punktów końcowych ani prywatnych punktów końcowych.

  2. Włącz integrację z siecią wirtualną dla aplikacji funkcji.

2. Tworzenie zabezpieczonego konta magazynu

Skonfiguruj zabezpieczone konto przechowywania dla aplikacji funkcji:

  1. Utwórz drugie konto magazynowe. To zabezpieczone konto magazynu jest używane przez aplikację funkcji zamiast jej oryginalnego, niezabezpieczonego konta magazynu. Możesz również użyć istniejącego konta magazynu, które nie jest jeszcze używane przez Functions.

  2. Zapisz ciąg połączenia dla tego konta magazynowego, aby użyć go później.

  3. Utwórz udostępnianie plików na nowym koncie magazynowania. Dla Twojej wygody możesz użyć tej samej nazwy udziału plików z oryginalnego konta magazynowania. W przeciwnym razie, jeśli używasz nowej nazwy udziału plików, musisz zaktualizować ustawienie aplikacji.

  4. Zabezpiecz nowe konto magazynowe na jeden z następujących sposobów:

    • Utwórz prywatny punkt końcowy. Podczas konfigurowania połączenia prywatnego punktu końcowego utwórz prywatne punkty końcowe dla podzasobów file, blob i table. W przypadku Durable Functions należy również udostępnić zasoby podrzędne za pośrednictwem prywatnych punktów końcowych. Jeśli używasz niestandardowego lub lokalnego serwera systemu nazw domen (DNS), skonfiguruj serwer DNS, aby rozpoznać nowe prywatne punkty końcowe.

    • Ogranicz ruch do określonych podsieci. Upewnij się, że aplikacja funkcji jest zintegrowana z dozwoloną podsiecią i że podsieć ma zdefiniowany tylko jeden z następujących punktów końcowych usługi:

      • Microsoft.Storage: użyj, gdy Twoja aplikacja znajduje się w tym samym regionie co Twoja sieć wirtualna.
      • Microsoft.Storage.Global: użyj, kiedy Twoja aplikacja znajduje się w innym regionie niż Twoja sieć wirtualna.
  5. Skopiuj zawartość pliku i obiektu blob z bieżącego konta magazynu używanego przez aplikację funkcji do nowo zabezpieczonego konta magazynu i udziału plików. Narzędzia AzCopy i Eksplorator usługi Azure Storage są typowymi metodami. Jeśli używasz Eksplorator usługi Azure Storage, może być konieczne zezwolenie na dostęp adresu IP klienta do zapory sieciowej Twojego konta magazynu.

Teraz możesz skonfigurować aplikację funkcyjną do komunikacji z niedawno zabezpieczonym kontem magazynowym.

3. Włączanie routingu aplikacji i konfiguracji

Uwaga

Te kroki konfiguracji są wymagane tylko w przypadku planów hostingu Elastic Premium i Dedicated (App Service). Plan Flex Consumption nie wymaga ustawień witryny do skonfigurowania sieci.

Teraz jesteś gotowy do kierowania ruchu aplikacji funkcji przez sieć wirtualną.

  1. Włącz routing aplikacji, aby kierować ruch aplikacji do sieci wirtualnej:

    1. W funkcji aplikacji rozwiń Ustawienia, a następnie wybierz pozycję Sieć. Na stronie Sieć w obszarze Konfiguracja ruchu wychodzącego wybierz podsieć skojarzona z integracją sieci wirtualnej.

    2. Na nowej stronie w obszarze Routing aplikacji wybierz pozycję Wychodzący ruch internetowy.

  2. Jeśli aplikacja używa udziału usługi Azure Files, włącz trasowanie udziału zawartości, wybierając pozycję Magazyn zawartości w sekcji Routing konfiguracji. Dzięki temu aplikacja może komunikować się z usługą Azure Files przy użyciu sieci wirtualnej.

Uwaga

Należy zachować szczególną ostrożność podczas kierowania ruchu do udziału w zasobach magazynowych, które są współdzielone przez wiele aplikacji funkcji w ramach tego samego planu. Aby uzyskać więcej informacji, zobacz Spójny routing przez sieci wirtualne w artykule Zagadnienia dotyczące przechowywania.

4. Aktualizowanie ustawień aplikacji

Na koniec musisz zaktualizować ustawienia aplikacji, tak aby wskazywały na nowe bezpieczne konto magazynowania.

  1. W aplikacji funkcji rozwiń Ustawienia, a następnie wybierz Zmienne środowiskowe.

  2. Na karcie Ustawienia aplikacji zaktualizuj następujące ustawienia, wybierając każde ustawienie, edytując je, a następnie wybierając pozycję Zastosuj:

    Nazwa ustawienia Wartość Komentarz
    AzureWebJobsStorage Łańcuch połączenia magazynu Użyj parametry połączenia dla nowego zabezpieczonego konta magazynu, które zapisano wcześniej.
    WEBSITE_CONTENTAZUREFILECONNECTIONSTRING Łańcuch połączenia magazynu Użyj parametry połączenia dla nowego zabezpieczonego konta magazynu, które zapisano wcześniej. Tylko jeśli aplikacja korzysta z Azure Files.
    WEBSITE_CONTENTSHARE Udział plików Użyj nazwy udostępniania plików utworzonego na zabezpieczonym koncie magazynowym, na którym znajdują się pliki wdrażania projektu. Tylko jeśli aplikacja korzysta z Azure Files.
  3. Wybierz pozycję Zastosuj, a następnie potwierdź , aby zapisać nowe ustawienia aplikacji w aplikacji funkcji. Powoduje to ponowne uruchomienie aplikacji.

Po zakończeniu ponownego uruchamiania aplikacji funkcji, nawiązuje ona połączenie z zabezpieczonym kontem magazynu.

Następne kroki