Azure Functions — przewodnik dla deweloperów
W usłudze Azure Functions wszystkie funkcje mają pewne podstawowe pojęcia techniczne i składniki, niezależnie od preferowanego języka lub środowiska programistycznego. Ten artykuł jest specyficzny dla języka. Wybierz preferowany język w górnej części artykułu.
W tym artykule założono, że znasz już omówienie usługi Azure Functions.
Jeśli wolisz przejść bezpośrednio, możesz ukończyć samouczek Szybki start przy użyciu programu Visual Studio, programu Visual Studio Code lub wiersza polecenia.
Jeśli wolisz przejść bezpośrednio, możesz ukończyć samouczek Szybki start przy użyciu narzędzia Maven (wiersza polecenia), Eclipse, IntelliJ IDEA, Gradle, Quarkus, Spring Cloud lub Visual Studio Code.
Jeśli wolisz przejść bezpośrednio, możesz ukończyć samouczek Szybki start przy użyciu programu Visual Studio Code lub z poziomu wiersza polecenia.
Jeśli wolisz przejść bezpośrednio, możesz ukończyć samouczek Szybki start przy użyciu programu Visual Studio Code lub z poziomu wiersza polecenia.
Jeśli wolisz przejść bezpośrednio, możesz ukończyć samouczek Szybki start przy użyciu programu Visual Studio Code lub z poziomu wiersza polecenia.
Jeśli wolisz przejść bezpośrednio, możesz ukończyć samouczek Szybki start przy użyciu programu Visual Studio Code lub z poziomu wiersza polecenia.
Projekt kodu
Podstawowym elementem usługi Azure Functions jest projekt kodu specyficzny dla języka, który implementuje co najmniej jedną jednostki wykonywania kodu o nazwie functions. Funkcje to po prostu metody uruchamiane w chmurze platformy Azure na podstawie zdarzeń, w odpowiedzi na żądania HTTP lub zgodnie z harmonogramem. Projekt kodu usługi Azure Functions można traktować jako mechanizm organizowania, wdrażania i zbiorowego zarządzania poszczególnymi funkcjami w projekcie podczas ich uruchamiania na platformie Azure. Aby uzyskać więcej informacji, zobacz Organizowanie funkcji.
Sposób układania projektu kodu i sposobu wskazywania metod w projekcie zależy od języka programowania projektu. Aby uzyskać szczegółowe wskazówki dotyczące języka, zobacz przewodnik deweloperów języka C#.
Sposób układania projektu kodu i sposobu wskazywania metod w projekcie zależy od języka programowania projektu. Aby uzyskać wskazówki specyficzne dla języka, zobacz Przewodnik dla deweloperów języka Java.
Sposób układania projektu kodu i sposobu wskazywania metod w projekcie zależy od języka programowania projektu. Aby uzyskać wskazówki specyficzne dla języka, zobacz przewodnik dla deweloperów Node.js.
Sposób układania projektu kodu i sposobu wskazywania metod w projekcie zależy od języka programowania projektu. Aby uzyskać wskazówki specyficzne dla języka, zobacz Przewodnik deweloperów programu PowerShell.
Sposób układania projektu kodu i sposobu wskazywania metod w projekcie zależy od języka programowania projektu. Aby uzyskać wskazówki specyficzne dla języka, zobacz Przewodnik dla deweloperów języka Python.
Wszystkie funkcje muszą mieć wyzwalacz, który definiuje sposób uruchamiania funkcji i może udostępniać dane wejściowe funkcji. Funkcje mogą opcjonalnie definiować powiązania wejściowe i wyjściowe. Te powiązania upraszczają połączenia z innymi usługami bez konieczności pracy z zestawami SDK klienta. Aby uzyskać więcej informacji, zobacz Pojęcia powiązań i wyzwalaczy usługi Azure Functions.
Usługa Azure Functions udostępnia zestaw szablonów projektów i funkcji specyficznych dla języka, które ułatwiają tworzenie nowych projektów kodu i dodawanie funkcji do projektu. Do generowania nowych aplikacji i funkcji przy użyciu tych szablonów można użyć dowolnego z narzędzi, które obsługują tworzenie usługi Azure Functions.
Narzędzia programistyczne
Następujące narzędzia zapewniają zintegrowane środowisko programowania i publikowania dla usługi Azure Functions w preferowanym języku:
Azure Functions Core Tools (wiersz polecenia)
Narzędzie Gradle
Te narzędzia integrują się z narzędziami Azure Functions Core Tools , aby można było uruchamiać i debugować na komputerze lokalnym przy użyciu środowiska uruchomieniowego usługi Functions. Aby uzyskać więcej informacji, zobacz Kod i testowanie usługi Azure Functions lokalnie.
W witrynie Azure Portal dostępny jest również edytor, który umożliwia aktualizowanie kodu i pliku definicji function.json bezpośrednio w portalu. Ten edytor powinien być używany tylko w przypadku niewielkich zmian lub tworzenia funkcji weryfikacji koncepcji. Zawsze należy opracowywać funkcje lokalnie, jeśli to możliwe. Aby uzyskać więcej informacji, zobacz Tworzenie pierwszej funkcji w witrynie Azure Portal.
Edytowanie portalu jest obsługiwane tylko w przypadku Node.js w wersji 3, która używa pliku function.json.
Wdrożenie
Podczas publikowania projektu kodu na platformie Azure zasadniczo wdrażasz projekt w istniejącym zasobie aplikacji funkcji. Aplikacja funkcji udostępnia kontekst wykonywania na platformie Azure, w którym działają funkcje. W związku z tym jest to jednostka wdrażania i zarządzania funkcjami. Z perspektywy zasobu platformy Azure aplikacja funkcji jest równoważna zasobowi witryny (Microsoft.Web/sites
) w usłudze aplikacja systemu Azure Service, który jest odpowiednikiem aplikacji internetowej.
Aplikacja funkcji składa się z co najmniej jednej pojedynczej funkcji, która jest zarządzana, wdrażana i skalowana razem. Wszystkie funkcje w aplikacji funkcji mają ten sam plan cenowy, metodę wdrażania i wersję środowiska uruchomieniowego. Aby uzyskać więcej informacji, zobacz Jak zarządzać aplikacją funkcji.
Jeśli aplikacja funkcji i inne wymagane zasoby nie istnieją jeszcze na platformie Azure, należy najpierw utworzyć te zasoby przed wdrożeniem plików projektu. Te zasoby można utworzyć na jeden z następujących sposobów:
Korzystanie z programu Visual Studio Code
Programowe używanie interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell, szablonów usługi ARM lub szablonów Bicep
W witrynie Azure Portal
Oprócz publikowania opartego na narzędziach usługa Functions obsługuje inne technologie wdrażania kodu źródłowego w istniejącej aplikacji funkcji. Aby uzyskać więcej informacji, zobacz Technologie wdrażania w usłudze Azure Functions.
Łączenie z usługami
Głównym wymaganiem każdej usługi obliczeniowej opartej na chmurze jest odczytywanie danych z i zapisywanie danych w innych usługach w chmurze. Funkcje udostępnia obszerny zestaw powiązań, które ułatwiają łączenie się z usługami bez konieczności pracy z zestawami SDK klienta.
Niezależnie od tego, czy używasz rozszerzeń powiązań udostępnianych przez usługę Functions, czy bezpośrednio współpracujesz z zestawami SDK klienta, bezpiecznie przechowujesz dane połączenia i nie dołączasz ich do kodu. Aby uzyskać więcej informacji, zobacz Połączenia.
Powiązania
Usługa Functions udostępnia powiązania dla wielu usług platformy Azure i kilku usług innych firm, które są implementowane jako rozszerzenia. Aby uzyskać więcej informacji, zobacz pełną listę obsługiwanych powiązań.
Rozszerzenia powiązań mogą obsługiwać zarówno dane wejściowe, jak i wyjściowe, a wiele wyzwalaczy działa również jako powiązania wejściowe. Powiązania umożliwiają skonfigurowanie połączenia z usługami, aby host usługi Functions mógł obsłużyć dostęp do danych. Aby uzyskać więcej informacji, zobacz Pojęcia powiązań i wyzwalaczy usługi Azure Functions.
Jeśli masz problemy z błędami pochodzącymi z powiązań, zapoznaj się z dokumentacją kodów błędów powiązania usługi Azure Functions.
Zestawy SDK klienta
Chociaż funkcje udostępniają powiązania, aby uprościć dostęp do danych w kodzie funkcji, nadal możesz użyć zestawu SDK klienta w projekcie, aby bezpośrednio uzyskać dostęp do danej usługi, jeśli wolisz. Może być konieczne bezpośrednie użycie zestawów SDK klienta, jeśli funkcje wymagają funkcjonalności bazowego zestawu SDK, który nie jest obsługiwany przez rozszerzenie powiązania.
W przypadku korzystania z zestawów SDK klienta należy użyć tego samego procesu do przechowywania i uzyskiwania dostępu do parametry połączenia używanych przez rozszerzenia powiązań.
Podczas tworzenia wystąpienia zestawu SDK klienta w funkcjach należy uzyskać informacje o połączeniu wymagane przez klienta ze zmiennych środowiskowych.
Podczas tworzenia wystąpienia zestawu SDK klienta w funkcjach należy uzyskać informacje o połączeniu wymagane przez klienta ze zmiennych środowiskowych.
Podczas tworzenia wystąpienia zestawu SDK klienta w funkcjach należy uzyskać informacje o połączeniu wymagane przez klienta ze zmiennych środowiskowych.
Podczas tworzenia wystąpienia zestawu SDK klienta w funkcjach należy uzyskać informacje o połączeniu wymagane przez klienta ze zmiennych środowiskowych.
Podczas tworzenia wystąpienia zestawu SDK klienta w funkcjach należy uzyskać informacje o połączeniu wymagane przez klienta ze zmiennych środowiskowych.
Połączenia
Najlepszym rozwiązaniem w zakresie zabezpieczeń usługa Azure Functions korzysta z funkcji ustawień aplikacji usługi aplikacja systemu Azure, aby ułatwić bezpieczniejsze przechowywanie ciągów, kluczy i innych tokenów wymaganych do nawiązania połączenia z innymi usługami. Ustawienia aplikacji na platformie Azure są przechowywane jako szyfrowane i mogą być dostępne w czasie wykonywania przez aplikację jako pary zmiennych środowiskowych name
value
. W przypadku wyzwalaczy i powiązań, które wymagają właściwości połączenia, należy ustawić nazwę ustawienia aplikacji zamiast rzeczywistego parametry połączenia. Nie można skonfigurować powiązania bezpośrednio przy użyciu parametry połączenia lub klucza.
Rozważmy na przykład definicję connection
wyzwalacza, która ma właściwość. Zamiast parametry połączenia należy ustawić connection
nazwę zmiennej środowiskowej zawierającej parametry połączenia. Użycie tej strategii dostępu do wpisów tajnych sprawia, że aplikacje są bezpieczniejsze i ułatwiają zmianę połączeń między środowiskami. Aby uzyskać jeszcze więcej zabezpieczeń, można użyć połączeń opartych na tożsamościach.
Domyślny dostawca konfiguracji używa zmiennych środowiskowych. Te zmienne są definiowane w ustawieniach aplikacji podczas uruchamiania na platformie Azure i w pliku ustawień lokalnych podczas tworzenia lokalnego.
Wartości połączenia
Gdy nazwa połączenia jest rozpoznawana jako pojedyncza dokładna wartość, środowisko uruchomieniowe identyfikuje wartość jako parametry połączenia, która zazwyczaj zawiera wpis tajny. Szczegóły parametry połączenia zależą od usługi, z którą nawiązujesz połączenie.
Jednak nazwa połączenia może również odwoływać się do kolekcji wielu elementów konfiguracji, co jest przydatne do konfigurowania połączeń opartych na tożsamościach. Zmienne środowiskowe mogą być traktowane jako kolekcja przy użyciu udostępnionego prefiksu kończącego się podwójnymi podkreśleniami __
. Następnie można odwoływać się do grupy, ustawiając nazwę połączenia na ten prefiks.
Na przykład connection
właściwość definicji wyzwalacza obiektu blob platformy Azure może mieć wartość Storage1
. Jeśli nie ma żadnej pojedynczej wartości parametrów skonfigurowanej przez zmienną środowiskową o nazwie , zmienna środowiskowa o nazwie Storage1
Storage1__blobServiceUri
może służyć do informowania blobServiceUri
właściwości połączenia. Właściwości połączenia są różne dla każdej usługi. Zapoznaj się z dokumentacją składnika korzystającego z połączenia.
Uwaga
W przypadku używania aplikacja systemu Azure Configuration lub Key Vault w celu zapewnienia ustawień dla połączeń tożsamości zarządzanej nazwy ustawień powinny używać prawidłowego separatora kluczy, takiego jak :
lub /
zamiast elementu __
, aby upewnić się, że nazwy są poprawnie rozpoznawane.
Na przykład Storage1:blobServiceUri
.
Konfigurowanie połączenia opartego na tożsamości
Niektóre połączenia w usłudze Azure Functions można skonfigurować do używania tożsamości zamiast wpisu tajnego. Obsługa zależy od wersji środowiska uruchomieniowego i rozszerzenia przy użyciu połączenia. W niektórych przypadkach w usłudze Functions może być nadal wymagana parametry połączenia, mimo że usługa, z którą nawiązujesz połączenie, obsługuje połączenia oparte na tożsamościach. Aby zapoznać się z samouczkiem dotyczącym konfigurowania aplikacji funkcji przy użyciu tożsamości zarządzanych, zobacz samouczek dotyczący tworzenia aplikacji funkcji z połączeniami opartymi na tożsamościach.
Uwaga
Podczas uruchamiania w planie Zużycie lub Elastic Premium aplikacja używa WEBSITE_AZUREFILESCONNECTIONSTRING
ustawień i WEBSITE_CONTENTSHARE
podczas nawiązywania połączenia z usługą Azure Files na koncie magazynu używanym przez aplikację funkcji. Usługa Azure Files nie obsługuje używania tożsamości zarządzanej podczas uzyskiwania dostępu do udziału plików. Aby uzyskać więcej informacji, zobacz Scenariusze uwierzytelniania obsługiwane przez usługę Azure Files
Połączenia oparte na tożsamościach są obsługiwane tylko w usłudze Functions 4.x. Jeśli używasz wersji 1.x, musisz najpierw przeprowadzić migrację do wersji 4.x.
Następujące składniki obsługują połączenia oparte na tożsamościach:
W przypadku hostowania w usłudze Azure Functions połączenia oparte na tożsamościach używają tożsamości zarządzanej. Tożsamość przypisana przez system jest używana domyślnie, chociaż tożsamości przypisanej przez użytkownika można określić za credential
pomocą właściwości i clientID
. Należy pamiętać, że konfigurowanie tożsamości przypisanej przez użytkownika przy użyciu identyfikatora zasobu nie jest obsługiwane. W przypadku uruchamiania w innych kontekstach, takich jak programowanie lokalne, tożsamość dewelopera jest używana, chociaż można to dostosować. Zobacz Programowanie lokalne z połączeniami opartymi na tożsamościach.
Udzielanie uprawnień tożsamości
Niezależnie od używanej tożsamości musi mieć uprawnienia do wykonywania zamierzonych akcji. W przypadku większości usług platformy Azure oznacza to, że musisz przypisać rolę w kontroli dostępu opartej na rolach platformy Azure przy użyciu wbudowanych lub niestandardowych ról, które zapewniają te uprawnienia.
Ważne
Niektóre uprawnienia mogą być uwidocznione przez usługę docelową, które nie są niezbędne dla wszystkich kontekstów. Jeśli to możliwe, przestrzegaj zasady najniższych uprawnień, udzielając tożsamości tylko wymaganych uprawnień. Jeśli na przykład aplikacja musi mieć możliwość odczytu tylko ze źródła danych, użyj roli, która ma uprawnienia tylko do odczytu. Niewłaściwe byłoby przypisanie roli, która umożliwia również zapisywanie w tej usłudze, ponieważ byłoby to nadmierne uprawnienie do operacji odczytu. Podobnie należy upewnić się, że przypisanie roli jest ograniczone tylko do zasobów, które należy odczytać.
Wybierz jedną z tych kart, aby dowiedzieć się więcej o uprawnieniach dla każdego składnika:
- Rozszerzenie obiektów blob platformy Azure
- Rozszerzenie usługi Azure Queues
- Rozszerzenie Tabele platformy Azure
- Rozszerzenie usługi Event Hubs
- Rozszerzenie usługi Service Bus
- Rozszerzenie usługi Event Grid
- Rozszerzenie usługi Azure Cosmos DB
- Rozszerzenie usługi Azure SignalR
- Dostawca magazynu durable functions
- Magazyn hostów usługi Functions
Musisz utworzyć przypisanie roli, które zapewnia dostęp do kontenera obiektów blob w czasie wykonywania. Role zarządzania, takie jak Właściciel , nie są wystarczające. W poniższej tabeli przedstawiono wbudowane role, które są zalecane podczas korzystania z rozszerzenia usługi Blob Storage w normalnej operacji. Aplikacja może wymagać dalszych uprawnień na podstawie zapisanego kodu.
Typ powiązania | Przykładowe role wbudowane |
---|---|
Wyzwalacz | Właściciel danych obiektu blob usługi Storage i współautordanych kolejki magazynu 1 Dodatkowe uprawnienia muszą być również przyznane połączeniu AzureWebJobsStorage.2 |
Powiązanie wejściowe | Czytelnik danych obiektu blob usługi Storage |
Powiązanie wyjściowe | Właściciel danych obiektu blob usługi Storage |
1 Wyzwalacz obiektu blob obsługuje błąd w wielu ponownych próbach, zapisując zatrute obiekty blob do kolejki na koncie magazynu określonym przez połączenie.
2 Połączenie AzureWebJobsStorage jest używane wewnętrznie dla obiektów blob i kolejek, które umożliwiają wyzwalacz. Jeśli jest skonfigurowany do korzystania z połączenia opartego na tożsamościach, wymaga dodatkowych uprawnień poza domyślnym wymaganiem. Wymagane uprawnienia są objęte rolami Właściciel danych obiektu blob usługi Storage, Współautor danych kolejki usługi Storage i Współautor konta magazynu. Aby dowiedzieć się więcej, zobacz Nawiązywanie połączenia z magazynem hostów przy użyciu tożsamości.
Typowe właściwości połączeń opartych na tożsamościach
Połączenie oparte na tożsamości dla usługi platformy Azure akceptuje następujące typowe właściwości, gdzie <CONNECTION_NAME_PREFIX>
jest wartością właściwości connection
w definicji wyzwalacza lub powiązania:
Właściwości | Szablon zmiennej środowiskowej | opis |
---|---|---|
Poświadczenia tokenu | <CONNECTION_NAME_PREFIX>__credential |
Definiuje sposób uzyskiwania tokenu dla połączenia. To ustawienie powinno być ustawione na managedidentity wartość , jeśli wdrożona funkcja platformy Azure zamierza używać uwierzytelniania tożsamości zarządzanej. Ta wartość jest prawidłowa tylko wtedy, gdy tożsamość zarządzana jest dostępna w środowisku hostingu. |
Client ID | <CONNECTION_NAME_PREFIX>__clientId |
Gdy credential jest ustawiona managedidentity wartość , tę właściwość można ustawić, aby określić tożsamość przypisaną przez użytkownika do użycia podczas uzyskiwania tokenu. Właściwość akceptuje identyfikator klienta odpowiadający tożsamości przypisanej przez użytkownika do aplikacji. Jest to nieprawidłowe określenie zarówno identyfikatora zasobu, jak i identyfikatora klienta. Jeśli nie zostanie określona, zostanie użyta tożsamość przypisana przez system. Ta właściwość jest używana inaczej w lokalnych scenariuszach programowania, gdy credential nie należy ich ustawiać. |
Identyfikator zasobu | <CONNECTION_NAME_PREFIX>__managedIdentityResourceId |
Gdy credential jest ustawiona managedidentity wartość , tę właściwość można ustawić, aby określić identyfikator zasobu, który ma być używany podczas uzyskiwania tokenu. Właściwość akceptuje identyfikator zasobu odpowiadający identyfikatorowi zasobu tożsamości zarządzanej zdefiniowanej przez użytkownika. Nie można określić zarówno identyfikatora zasobu, jak i identyfikatora klienta. Jeśli żadna z nich nie zostanie określona, zostanie użyta tożsamość przypisana przez system. Ta właściwość jest używana inaczej w lokalnych scenariuszach programowania, gdy credential nie należy ich ustawiać. |
Inne opcje mogą być obsługiwane dla danego typu połączenia. Zapoznaj się z dokumentacją składnika tworzącego połączenie.
Zmienne środowiskowe zestawu Azure SDK
Uwaga
Korzystanie ze zmiennych środowiskowych zestawu Azure SDK EnvironmentCredential
nie jest zalecane ze względu na potencjalnie niezamierzony wpływ na inne połączenia. Nie są one również w pełni obsługiwane podczas wdrażania w usłudze Azure Functions.
Zmienne środowiskowe skojarzone z zestawem EnvironmentCredential
Azure SDK można również ustawić, ale nie są one przetwarzane przez usługę Functions na potrzeby skalowania w planach zużycie. Te zmienne środowiskowe nie są specyficzne dla żadnego połączenia i będą stosowane jako domyślne, chyba że odpowiednia właściwość nie jest ustawiona dla danego połączenia. Jeśli na przykład AZURE_CLIENT_ID
jest ustawiona, będzie ona używana tak, jakby <CONNECTION_NAME_PREFIX>__clientId
została skonfigurowana. Jawne ustawienie <CONNECTION_NAME_PREFIX>__clientId
spowoduje zastąpienie tej wartości domyślnej.
Programowanie lokalne z połączeniami opartymi na tożsamościach
Uwaga
Programowanie lokalne z połączeniami opartymi na tożsamościach wymaga wersji 4.0.3904
narzędzi Azure Functions Core Tools lub nowszej.
Po uruchomieniu projektu funkcji lokalnie powyższa konfiguracja informuje środowisko uruchomieniowe o użyciu lokalnej tożsamości dewelopera. Połączenie próbuje uzyskać token z następujących lokalizacji w następującej kolejności:
- Lokalna pamięć podręczna udostępniona między aplikacjami firmy Microsoft
- Bieżący kontekst użytkownika w programie Visual Studio
- Bieżący kontekst użytkownika w programie Visual Studio Code
- Bieżący kontekst użytkownika w interfejsie wiersza polecenia platformy Azure
Jeśli żadna z tych opcji nie powiedzie się, wystąpi błąd.
Twoja tożsamość może już mieć pewne przypisania ról względem zasobów platformy Azure używanych do programowania, ale te role mogą nie zapewniać niezbędnego dostępu do danych. Role zarządzania, takie jak Właściciel , nie są wystarczające. Sprawdź dokładnie, jakie uprawnienia są wymagane dla połączeń dla każdego składnika, i upewnij się, że zostały przypisane do siebie.
W niektórych przypadkach możesz określić użycie innej tożsamości. Można dodać właściwości konfiguracji dla połączenia, które wskazują alternatywną tożsamość na podstawie identyfikatora klienta i klucza tajnego klienta dla jednostki usługi Microsoft Entra. Ta opcja konfiguracji nie jest obsługiwana w przypadku hostowania w usłudze Azure Functions. Aby użyć identyfikatora i wpisu tajnego na komputerze lokalnym, zdefiniuj połączenie z następującymi dodatkowymi właściwościami:
Właściwości | Szablon zmiennej środowiskowej | opis |
---|---|---|
Identyfikator dzierżawy | <CONNECTION_NAME_PREFIX>__tenantId |
Identyfikator dzierżawy (katalogu) firmy Microsoft. |
Client ID | <CONNECTION_NAME_PREFIX>__clientId |
Identyfikator klienta (aplikacji) rejestracji aplikacji w dzierżawie. |
Klucz tajny klienta | <CONNECTION_NAME_PREFIX>__clientSecret |
Wpis tajny klienta wygenerowany na potrzeby rejestracji aplikacji. |
Oto przykład local.settings.json
właściwości wymaganych do połączenia opartego na tożsamościach z obiektami blob platformy Azure:
{
"IsEncrypted": false,
"Values": {
"<CONNECTION_NAME_PREFIX>__blobServiceUri": "<blobServiceUri>",
"<CONNECTION_NAME_PREFIX>__queueServiceUri": "<queueServiceUri>",
"<CONNECTION_NAME_PREFIX>__tenantId": "<tenantId>",
"<CONNECTION_NAME_PREFIX>__clientId": "<clientId>",
"<CONNECTION_NAME_PREFIX>__clientSecret": "<clientSecret>"
}
}
Nawiązywanie połączenia z magazynem hostów przy użyciu tożsamości
Host usługi Azure Functions używa połączenia magazynu ustawionego w programie w AzureWebJobsStorage
celu włączenia podstawowych zachowań, takich jak koordynowanie pojedynczego wykonywania wyzwalaczy czasomierza i domyślnego magazynu kluczy aplikacji. To połączenie można również skonfigurować do używania tożsamości.
Uwaga
Inne składniki w usłudze Functions korzystają z AzureWebJobsStorage
domyślnych zachowań. Nie należy przenosić go do połączenia opartego na tożsamościach, jeśli używasz starszych wersji rozszerzeń, które nie obsługują tego typu połączenia, w tym wyzwalaczy i powiązań dla obiektów blob platformy Azure, usługi Event Hubs i rozszerzenia Durable Functions. AzureWebJobsStorage
Podobnie jest używany do wdrażania artefaktów podczas korzystania z kompilacji po stronie serwera w systemie Linux Consumption, a jeśli to włączysz, konieczne będzie wdrożenie za pośrednictwem zewnętrznego pakietu wdrożeniowego.
Ponadto aplikacja funkcji może ponownie używać AzureWebJobsStorage
innych połączeń magazynu w wyzwalaczach, powiązaniach i/lub kodzie funkcji. Przed zmianą tego połączenia z parametry połączenia upewnij się, że wszystkie zastosowania AzureWebJobsStorage
programu są w stanie używać formatu połączenia opartego na tożsamościach.
Aby użyć połączenia opartego na tożsamości dla AzureWebJobsStorage
programu , skonfiguruj następujące ustawienia aplikacji:
Ustawienie | opis | Przykładowa wartość |
---|---|---|
AzureWebJobsStorage__blobServiceUri |
Identyfikator URI płaszczyzny danych usługi obiektów blob konta magazynu przy użyciu schematu HTTPS. | <https:// storage_account_name.blob.core.windows.net> |
AzureWebJobsStorage__queueServiceUri |
Identyfikator URI płaszczyzny danych usługi kolejki konta magazynu przy użyciu schematu HTTPS. | <https:// storage_account_name.queue.core.windows.net> |
AzureWebJobsStorage__tableServiceUri |
Identyfikator URI płaszczyzny danych usługi tabeli konta magazynu przy użyciu schematu HTTPS. | <https:// storage_account_name.table.core.windows.net> |
Można również ustawić typowe właściwości połączeń opartych na tożsamościach.
Jeśli konfigurujesz AzureWebJobsStorage
przy użyciu konta magazynu, które używa domyślnego sufiksu DNS i nazwy usługi dla globalnej platformy Azure, https://<accountName>.[blob|queue|file|table].core.windows.net
możesz zamiast tego ustawić AzureWebJobsStorage__accountName
nazwę konta magazynu. Punkty końcowe dla każdej usługi magazynu są wnioskowane dla tego konta. Nie działa to, gdy konto magazynu znajduje się w suwerennej chmurze lub ma niestandardowy system DNS.
Ustawienie | opis | Przykładowa wartość |
---|---|---|
AzureWebJobsStorage__accountName |
Nazwa konta magazynu, ważna tylko wtedy, gdy konto nie znajduje się w suwerennej chmurze i nie ma niestandardowego systemu DNS. Ta składnia jest unikatowa AzureWebJobsStorage dla innych połączeń opartych na tożsamościach i nie może być używana. |
<storage_account_name> |
Należy utworzyć przypisanie roli, które zapewnia dostęp do konta magazynu "AzureWebJobsStorage" w czasie wykonywania. Role zarządzania, takie jak Właściciel , nie są wystarczające. Rola Właściciel danych obiektu blob usługi Storage obejmuje podstawowe potrzeby magazynu hostów usługi Functions — środowisko uruchomieniowe wymaga zarówno dostępu do odczytu, jak i zapisu do obiektów blob oraz możliwości tworzenia kontenerów. Kilka rozszerzeń używa tego połączenia jako domyślnej lokalizacji dla obiektów blob, kolejek i tabel, a te zastosowania mogą dodawać wymagania, jak wspomniano w poniższej tabeli. Może być konieczne dodatkowe uprawnienia, jeśli używasz polecenia "AzureWebJobsStorage" do innych celów.
Numer wewnętrzny | Wymagane role | Wyjaśnienie |
---|---|---|
Brak rozszerzenia (tylko host) | Właściciel danych obiektu blob usługi Storage | Służy do ogólnej koordynacji, domyślnego magazynu kluczy |
Obiekty blob platformy Azure (tylko wyzwalacz) | Wszystkie: Współautor konta magazynu, Właściciel danych obiektu blob usługi Storage, Współautor danych kolejki usługi Storage |
Wyzwalacz obiektu blob wewnętrznie używa kolejek platformy Azure i zapisuje paragony obiektów blob. Używa ona usługi AzureWebJobsStorage dla tych elementów, niezależnie od połączenia skonfigurowanego dla wyzwalacza. |
Azure Event Hubs (tylko wyzwalacz) | (brak zmiany z wymagania domyślnego) Właściciel danych obiektu blob usługi Storage |
Punkty kontrolne są utrwalane w obiektach blob przy użyciu połączenia AzureWebJobsStorage. |
Wyzwalacz czasomierza | (brak zmiany z wymagania domyślnego) Właściciel danych obiektu blob usługi Storage |
Aby zapewnić jedno wykonanie na zdarzenie, blokady są wykonywane z obiektami blob przy użyciu połączenia AzureWebJobsStorage. |
Trwałe funkcje | Wszystkie: Współautor danych obiektu blob usługi Storage, Współautor danych kolejki usługi Storage, Współautor danych tabeli usługi Storage |
Rozszerzenie Durable Functions używa obiektów blob, kolejek i tabel do koordynowania funkcji działania i konserwacji stanu aranżacji. Domyślnie używa połączenia AzureWebJobsStorage dla wszystkich tych elementów, ale można określić inne połączenie w konfiguracji rozszerzenia Durable Functions. |
Raportowanie problemów
Produkt | opis | Łącze |
---|---|---|
Środowisko uruchomieniowe | Host skryptów, wyzwalacze i powiązania, obsługa języków | Zgłoś problem |
Szablony | Problemy z kodem dotyczące szablonu tworzenia | Zgłoś problem |
Portal | Problem z interfejsem użytkownika lub środowiskiem | Zgłoś problem |
Repozytoria typu open source
Kod usługi Azure Functions jest typu open source i można znaleźć kluczowe składniki w tych repozytoriach GitHub:
Następne kroki
Aby uzyskać więcej informacji, zobacz następujące zasoby: