Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule użyjesz lokalnych narzędzi wiersza polecenia, aby utworzyć funkcję, która odpowiada na żądania HTTP. Po zweryfikowaniu kodu lokalnie należy wdrożyć go w bezserwerowym planie hostingu Flex Consumption w usłudze Azure Functions.
Ukończenie tego szybkiego startu wiąże się z naliczeniem niewielkiej opłaty wynoszącej kilka centów USD lub mniej na koncie Azure.
Pamiętaj, aby wybrać preferowany język programowania w górnej części artykułu.
Prerequisites
- Konto Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
-
Java 17 Developer Kit
- Jeśli używasz innej obsługiwanej wersji języka Java, musisz zaktualizować plik pom.xml projektu.
- Zmienna
JAVA_HOMEśrodowiskowa musi być ustawiona na lokalizację instalacji poprawnej wersji zestawu Java Development Kit (JDK).
- Apache Maven 3.8.x
jqProcesor JSON wiersza poleceń, który służy do analizowania wyników JSON, jest również dostępny w usłudze Azure Cloud Shell.
Instalowanie podstawowych narzędzi usługi Azure Functions
Zalecany sposób instalowania narzędzi Core Tools zależy od systemu operacyjnego lokalnego komputera programistycznego.
Poniższe kroki umożliwiają zainstalowanie narzędzi Core Tools w wersji 4.x za pomocą Instalatora Windows (MSI). Aby uzyskać więcej informacji na temat innych instalatorów opartych na pakietach, zobacz plik readme narzędzi Core Tools.
Pobierz i uruchom instalatora narzędzi Core Tools na podstawie używanej wersji systemu Windows:
- Wersja 4.x — windows 64-bitowy (zalecane. Debugowanie programu Visual Studio Code wymaga 64-bitowej wersji).
- v4.x - 32-bitowy Windows
Jeśli poprzednio użyto instalatora Windows (MSI) do zainstalowania narzędzi Core Tools w systemie Windows, przed zainstalowaniem najnowszej wersji należy odinstalować starą wersję z sekcji Dodaj usuń programy.
Tworzenie i aktywowanie środowiska wirtualnego
W odpowiednim folderze uruchom następujące polecenia, aby utworzyć i aktywować środowisko wirtualne o nazwie .venv. Upewnij się, że używasz jednej z wersji języka Python obsługiwanych przez usługę Azure Functions.
python -m venv .venv
source .venv/bin/activate
Jeśli język Python nie zainstalował pakietu venv w dystrybucji systemu Linux, uruchom następujące polecenie:
sudo apt-get install python3-venv
Wszystkie kolejne polecenia są uruchamiane w tym aktywowanym środowisku wirtualnym.
Tworzenie lokalnego projektu kodu i funkcji
W usłudze Azure Functions projekt kodu to aplikacja zawierająca co najmniej jedną pojedynczą funkcję, która odpowiada na określony wyzwalacz. Wszystkie funkcje w projekcie współużytkują te same konfiguracje i są wdrażane jako jednostka na platformie Azure. W tej sekcji utworzysz projekt kodu zawierający jedną funkcję.
W terminalu lub wierszu polecenia uruchom to
func initpolecenie, aby utworzyć projekt aplikacji funkcji w bieżącym folderze:func init --worker-runtime dotnet-isolated
W terminalu lub wierszu polecenia uruchom to
func initpolecenie, aby utworzyć projekt aplikacji funkcji w bieżącym folderze:func init --worker-runtime node --language javascript
W terminalu lub wierszu polecenia uruchom to
func initpolecenie, aby utworzyć projekt aplikacji funkcji w bieżącym folderze:func init --worker-runtime powershell
W terminalu lub wierszu polecenia uruchom to
func initpolecenie, aby utworzyć projekt aplikacji funkcji w bieżącym folderze:func init --worker-runtime python
W terminalu lub wierszu polecenia uruchom to
func initpolecenie, aby utworzyć projekt aplikacji funkcji w bieżącym folderze:func init --worker-runtime node --language typescript
W terminalu lub wierszu polecenia uruchom to
func initpolecenie, aby utworzyć projekt aplikacji funkcji w bieżącym folderze:func init --worker-runtime custom
W pustym folderze uruchom to
mvnpolecenie, aby wygenerować projekt kodu na podstawie archetypu narzędzia Maven usługi Azure Functions:mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=17Important
- Użyj polecenia
-DjavaVersion=11, jeśli chcesz, aby funkcje działały w języku Java 11. Aby dowiedzieć się więcej, zobacz Wersje języka Java. - Ustaw zmienną
JAVA_HOMEśrodowiskową na lokalizację instalacji poprawnej wersji zestawu JDK, aby ukończyć ten artykuł.
- Użyj polecenia
Narzędzie Maven prosi o podanie wartości potrzebnych do zakończenia generowania projektu we wdrożeniu.
Po wyświetleniu monitu podaj następujące wartości:Prompt Value Description groupId com.fabrikamWartość, która jednoznacznie identyfikuje projekt we wszystkich projektach, zgodnie z regułami nazewnictwa pakietów dla języka Java. artifactId fabrikam-functionsWartość, która jest nazwą pliku jar bez numeru wersji. version 1.0-SNAPSHOTWybierz wartość domyślną. package com.fabrikamWartość, która jest pakietem Java dla wygenerowanego kodu funkcji. Użyj wartości domyślnej. Wpisz
Ylub naciśnij Enter, aby potwierdzić.Narzędzie Maven tworzy pliki projektu w nowym folderze o nazwie artifactId, która w tym przykładzie to
fabrikam-functions.Przejdź do folderu projektu:
cd fabrikam-functionsMożesz przejrzeć kod wygenerowany przez szablon dla nowej funkcji wyzwalacza HTTP w Function.java w katalogu projektu \src\main\java\com\fabrikam .
Użyj tego
func newpolecenia, aby dodać funkcję do projektu:func new --name HttpExample --template "HTTP trigger" --authlevel "function"Nowy plik kodu jest dodawany do projektu. W tym przypadku
--nameargument jest unikatową nazwą funkcji (HttpExample), a--templateargument określa wyzwalacz HTTP.
Folder główny projektu zawiera różne pliki dla projektu, w tym pliki konfiguracji o nazwie local.settings.json i host.json. Ponieważ local.settings.json może zawierać wpisy tajne pobrane z platformy Azure, plik jest domyślnie wykluczony z kontroli źródła w pliku gitignore .
Tworzenie i tworzenie funkcji
Plik function.json w folderze HttpExample deklaruje funkcję wyzwalacza HTTP. Wykonasz tę funkcję, dodając procedurę obsługi i kompilując ją do pliku wykonywalnego.
Naciśnij Ctrl + N (Cmd + N w systemie macOS), aby utworzyć nowy plik. Zapisz go jako plik handler.go w katalogu głównym aplikacji funkcji (w tym samym folderze co host.json).
W pliku handler.go dodaj następujący kod i zapisz plik. Jest to niestandardowa procedura obsługi języka Go.
package main import ( "fmt" "log" "net/http" "os" ) func helloHandler(w http.ResponseWriter, r *http.Request) { message := "This HTTP triggered function executed successfully. Pass a name in the query string for a personalized response.\n" name := r.URL.Query().Get("name") if name != "" { message = fmt.Sprintf("Hello, %s. This HTTP triggered function executed successfully.\n", name) } fmt.Fprint(w, message) } func main() { listenAddr := ":8080" if val, ok := os.LookupEnv("FUNCTIONS_CUSTOMHANDLER_PORT"); ok { listenAddr = ":" + val } http.HandleFunc("/api/HttpExample", helloHandler) log.Printf("About to listen on %s. Go to https://127.0.0.1%s/", listenAddr, listenAddr) log.Fatal(http.ListenAndServe(listenAddr, nil)) }Naciśnij Ctrl + Shift + ' lub wybierz pozycję Nowy terminal z menu Terminal , aby otworzyć nowy zintegrowany terminal w programie VS Code.
Skompiluj niestandardową procedurę obsługi przy użyciu następującego polecenia. Plik wykonywalny o nazwie
handler(handler.exew systemie Windows) jest danymi wyjściowymi w folderze głównym aplikacji funkcji.go build handler.go
Konfigurowanie aplikacji funkcji
Host funkcji musi być skonfigurowany do uruchamiania niestandardowego pliku binarnego programu obsługi.
Otwórz host.json.
customHandler.descriptionW sekcji ustaw wartośćdefaultExecutablePathnahandler(w systemie Windows ustaw ją na wartośćhandler.exe).customHandlerW sekcji dodaj właściwość o nazwieenableForwardingHttpRequesti ustaw jej wartość natrue. W przypadku funkcji składających się tylko z wyzwalacza HTTP to ustawienie upraszcza programowanie, umożliwiając pracę z typowym żądaniem HTTP zamiast ładunku żądania niestandardowego programu obsługi.Upewnij się,
customHandlerże sekcja wygląda podobnie do tego przykładu. Zapisz plik."customHandler": { "description": { "defaultExecutablePath": "handler", "workingDirectory": "", "arguments": [] }, "enableForwardingHttpRequest": true }
Aplikacja funkcji jest skonfigurowana do uruchamiania niestandardowego pliku wykonywalnego programu obsługi.
Lokalne uruchamianie funkcji
Zweryfikuj nową funkcję, uruchamiając projekt lokalnie i wywołując punkt końcowy funkcji.
Użyj tego polecenia, aby uruchomić lokalnego hosta środowiska uruchomieniowego usługi Azure Functions w katalogu głównym folderu projektu:
func startnpm install npm startmvn clean package mvn azure-functions:runNa końcu danych wyjściowych są wyświetlane następujące wiersze:
... Now listening on: http://0.0.0.0:7071 Application started. Press Ctrl+C to shut down. Http Functions: HttpExample: [GET,POST] http://localhost:7071/api/HttpExample ...Skopiuj adres URL swojej funkcji
HttpExamplez tych danych wyjściowych do przeglądarki i przejdź do adresu URL funkcji. Powinna pojawić się odpowiedź na powodzenie z komunikatem "hello world".Note
Ponieważ autoryzacja klucza dostępu nie jest wymuszana podczas uruchamiania lokalnego, zwrócony adres URL funkcji nie zawiera wartości klucza dostępu i nie jest potrzebny do wywołania funkcji.
Gdy skończysz, użyj Ctrl+C i wybierz,
yaby zatrzymać hosta funkcji.
Utwórz zasoby pomocnicze platformy Azure dla swojej funkcji
Przed wdrożeniem kodu funkcji na platformie Azure należy utworzyć następujące zasoby:
- Grupa zasobów, która jest kontenerem logicznym dla powiązanych zasobów.
- Domyślne konto magazynu, które jest używane przez hosta usługi Functions do obsługi stanu i innych informacji o funkcjach.
- Tożsamość zarządzana przypisana przez użytkownika, której host usługi Functions używa do nawiązywania połączenia z domyślnym kontem magazynu.
- Aplikacja funkcji, która udostępnia środowisko do wykonywania kodu funkcji. Aplikacja funkcji odpowiada lokalnemu projektowi funkcji i umożliwia grupowanie funkcji jako jednostki logicznej w celu łatwiejszego zarządzania, wdrażania i udostępniania zasobów.
Użyj poleceń interfejsu wiersza polecenia platformy Azure w tych krokach, aby utworzyć wymagane zasoby.
Jeśli jeszcze tego nie zrobiono, zaloguj się do platformy Azure:
az loginPolecenie
az loginpowoduje zalogowanie cię do konta platformy Azure. Pomiń ten krok, jeśli korzystasz z Azure Cloud Shell.Jeśli jeszcze tego nie zrobiono, użyj tego
az extension addpolecenia, aby zainstalować rozszerzenie usługi Application Insights:az extension add --name application-insightsUżyj tego polecenia az group create , aby utworzyć grupę zasobów o nazwie
AzureFunctionsQuickstart-rgw wybranym regionie:az group create --name "AzureFunctionsQuickstart-rg" --location "<REGION>"W tym przykładzie zastąp
<REGION>regionem w pobliżu, który obsługuje plan Flex Consumption. Użyj polecenia az functionapp list-flexconsumption-locations , aby wyświetlić listę aktualnie obsługiwanych regionów.Użyj polecenia az storage account create aby utworzyć ogólne konto magazynu w swojej grupie zasobów i regionie.
az storage account create --name <STORAGE_NAME> --location "<REGION>" --resource-group "AzureFunctionsQuickstart-rg" \ --sku "Standard_LRS" --allow-blob-public-access false --allow-shared-key-access falseW tym przykładzie zastąp
<STORAGE_NAME>nazwą, która jest odpowiednia dla ciebie i unikatowa w Azure Storage. Nazwy muszą zawierać od trzech do 24 znaków i tylko małe litery.Standard_LRSokreśla konto ogólnego przeznaczenia, które jest obsługiwane przez funkcje. Do tego nowego konta można uzyskać dostęp tylko przy użyciu tożsamości uwierzytelnionych przez firmę Microsoft, którym udzielono uprawnień do określonych zasobów.Użyj tego skryptu, aby utworzyć tożsamość zarządzaną przypisaną przez użytkownika, przeanalizować zwrócone właściwości JSON obiektu przy użyciu polecenia
jqi udzielićStorage Blob Data Owneruprawnień na domyślnym koncie magazynu:output=$(az identity create --name "func-host-storage-user" --resource-group "AzureFunctionsQuickstart-rg" --location <REGION> \ --query "{userId:id, principalId: principalId, clientId: clientId}" -o json) userId=$(echo $output | jq -r '.userId') principalId=$(echo $output | jq -r '.principalId') clientId=$(echo $output | jq -r '.clientId') storageId=$(az storage account show --resource-group "AzureFunctionsQuickstart-rg" --name <STORAGE_NAME> --query 'id' -o tsv) az role assignment create --assignee-object-id $principalId --assignee-principal-type ServicePrincipal \ --role "Storage Blob Data Owner" --scope $storageIdJeśli nie masz narzędzia
jqw lokalnej powłoce Bash, jest dostępne w Azure Cloud Shell. W tym przykładzie zamień<STORAGE_NAME>na nazwę domyślnego konta magazynu, a<REGION>na region.Polecenie az identity create tworzy tożsamość o nazwie
func-host-storage-user. ZwróconyprincipalIdelement służy do przypisywania uprawnień do tej nowej tożsamości na domyślnym koncie magazynu przy użyciu poleceniaaz role assignment create. Polecenieaz storage account showsłuży do uzyskania identyfikatora konta magazynu.Użyj tego polecenia az functionapp create , aby utworzyć aplikację funkcji na platformie Azure:
az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \ --runtime dotnet-isolated --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \ --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \ --runtime java --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \ --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \ --runtime node --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \ --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \ --runtime python --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \ --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \ --runtime python --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \ --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \ --runtime other --storage-account <STORAGE_NAME> \ --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"W tym przykładzie zastąp te symbole zastępcze odpowiednimi wartościami:
-
<APP_NAME>: globalnie unikatowa nazwa odpowiednia dla Ciebie.<APP_NAME>jest również domyślną domeną DNS aplikacji funkcji. -
<STORAGE_NAME>: nazwa konta użytego w poprzednim kroku. -
<REGION>: bieżący region. -
<LANGUAGE_VERSION>: użyj tej samej obsługiwanej wersji stosu języka, którą zweryfikowano lokalnie, o ile to możliwe.
To polecenie tworzy aplikację funkcji działającą w określonym środowisku uruchomieniowym języka w systemie Linux w ramach planu Flex Consumption Plan, która jest bezpłatna dla naliczanej ilości użycia w tym miejscu. Polecenie tworzy również skojarzone wystąpienie usługi Azure Application Insights w tej samej grupie zasobów, które można używać do monitorowania wykonania aplikacji funkcji i przeglądania dzienników. Aby uzyskać więcej informacji, zobacz Monitorowanie usługi Azure Functions. Wystąpienie nie wiąże się z żadnymi kosztami do momentu jego aktywowania.
-
Użyj tego skryptu, aby dodać zarządzaną tożsamość przypisaną przez użytkownika do roli Wydawca metryk monitorowania w instancji Application Insights.
appInsights=$(az monitor app-insights component show --resource-group "AzureFunctionsQuickstart-rg" \ --app <APP_NAME> --query "id" --output tsv) principalId=$(az identity show --name "func-host-storage-user" --resource-group "AzureFunctionsQuickstart-rg" \ --query principalId -o tsv) az role assignment create --role "Monitoring Metrics Publisher" --assignee $principalId --scope $appInsightsW tym przykładzie zastąp
<APP_NAME>ciąg nazwą aplikacji funkcji. Polecenie az role assignment create dodaje użytkownika do roli. Identyfikator zasobu wystąpienia usługi Application Insights i identyfikator podmiotu zabezpieczeń użytkownika są uzyskiwane przy użyciu odpowiednio polecenia az monitor app-insights component show iaz identity show.
Aktualizowanie ustawień aplikacji
Aby umożliwić hostowi usługi Functions nawiązywanie połączenia z domyślnym kontem magazynu przy użyciu udostępnionych sekretów, zastąp ustawienie parametrów połączenia AzureWebJobsStorage kilkoma ustawieniami, które mają prefiks AzureWebJobsStorage__. Te ustawienia określają zaawansowaną konfigurację używaną przez aplikację do łączenia się z magazynem i usługą Application Insights, korzystając z zarządzanej tożsamości przypisanej przez użytkownika.
Użyj tego skryptu, aby uzyskać identyfikator klienta dla tożsamości zarządzanej przypisanej przez użytkownika i na jego podstawie zdefiniować połączenia tożsamości zarządzanej zarówno z przechowywaniem danych, jak i usługą Application Insights.
clientId=$(az identity show --name func-host-storage-user \ --resource-group AzureFunctionsQuickstart-rg --query 'clientId' -o tsv) az functionapp config appsettings set --name <APP_NAME> --resource-group "AzureFunctionsQuickstart-rg" \ --settings AzureWebJobsStorage__accountName=<STORAGE_NAME> \ AzureWebJobsStorage__credential=managedidentity AzureWebJobsStorage__clientId=$clientId \ APPLICATIONINSIGHTS_AUTHENTICATION_STRING="ClientId=$clientId;Authorization=AAD"W tym skrypcie zastąp
<APP_NAME>i<STORAGE_NAME>nazwami aplikacji funkcji oraz konta magazynowego odpowiednio.Uruchom polecenie az functionapp config appsettings delete , aby usunąć istniejące
AzureWebJobsStorageustawienie parametrów połączenia, które zawiera wspólny klucz tajny:az functionapp config appsettings delete --name <APP_NAME> --resource-group "AzureFunctionsQuickstart-rg" --setting-names AzureWebJobsStorageW tym przykładzie zastąp
<APP_NAME>nazwami twojej aplikacji funkcji.
Na tym etapie host usługi Functions może bezpiecznie nawiązać połączenie z kontem magazynu przy użyciu zarządzanych tożsamości zamiast wspólnych sekretów. Teraz możesz wdrożyć kod projektu w zasobach platformy Azure.
Wdrażanie projektu funkcji na platformie Azure
Po pomyślnym utworzeniu aplikacji funkcji na platformie Azure możesz przystąpić do wdrażania projektu funkcji lokalnych przy użyciu func azure functionapp publish polecenia .
W folderze głównym projektu uruchom następujące
func azure functionapp publishpolecenie:func azure functionapp publish <APP_NAME>W tym przykładzie zastąp
<APP_NAME>nazwą twojej aplikacji. Pomyślne wdrożenie pokazuje wyniki podobne do następujących danych wyjściowych (obcięte dla uproszczenia):... Getting site publishing info... Creating archive for current directory... Performing remote build for functions project. ... Deployment successful. Remote build succeeded! Syncing triggers... Functions in msdocs-azurefunctions-qs: HttpExample - [httpTrigger] Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexampleW lokalnym terminalu lub wierszu polecenia uruchom to polecenie, aby uzyskać wartość punktu końcowego adresu URL, w tym klucz dostępu:
func azure functionapp list-functions <APP_NAME> --show-keysW tym przykładzie ponownie zastąp
<APP_NAME>nazwą Twojej aplikacji.Skopiuj zwrócony adres URL punktu końcowego i klucz, którego użyjesz do wywołania punktu końcowego funkcji.
Aktualizowanie pliku pom.xml
Po pomyślnym utworzeniu aplikacji funkcji na platformie Azure zaktualizuj plik pom.xml, aby narzędzie Maven można było wdrożyć w nowej aplikacji. W przeciwnym razie program Maven tworzy nowy zestaw zasobów platformy Azure podczas wdrażania.
W usłudze Azure Cloud Shell użyj tego
az functionapp showpolecenia, aby uzyskać adres URL i identyfikator kontenera wdrożenia nowej tożsamości zarządzanej przypisanej przez użytkownika:az functionapp show --name <APP_NAME> --resource-group AzureFunctionsQuickstart-rg \ --query "{userAssignedIdentityResourceId: properties.functionAppConfig.deployment.storage.authentication.userAssignedIdentityResourceId, \ containerUrl: properties.functionAppConfig.deployment.storage.value}"W tym przykładzie zastąp
<APP_NAME>nazwami twojej aplikacji funkcji.W katalogu głównym projektu otwórz plik pom.xml w edytorze tekstów, znajdź
propertieselement i zaktualizuj następujące wartości właściwości:Nazwa właściwości Value java.versionUżyj tej samej obsługiwanej wersji stosu języka zweryfikowanego lokalnie, takiej jak 17.azure.functions.maven.plugin.version1.37.1azure.functions.java.library.version3.1.0functionAppNameNazwa aplikacji funkcji na platformie Azure. Znajdź sekcję
configurationplikuazure-functions-maven-plugini zastąp ją następującym fragmentem XML:<configuration> <appName>${functionAppName}</appName> <resourceGroup>AzureFunctionsQuickstart-rg</resourceGroup> <pricingTier>Flex Consumption</pricingTier> <region>....</region> <runtime> <os>linux</os> <javaVersion>${java.version}</javaVersion> </runtime> <deploymentStorageAccount>...</deploymentStorageAccount> <deploymentStorageResourceGroup>AzureFunctionsQuickstart-rg</deploymentStorageResourceGroup> <deploymentStorageContainer>...</deploymentStorageContainer> <storageAuthenticationMethod>UserAssignedIdentity</storageAuthenticationMethod> <userAssignedIdentityResourceId>...</userAssignedIdentityResourceId> <appSettings> <property> <name>FUNCTIONS_EXTENSION_VERSION</name> <value>~4</value> </property> </appSettings> </configuration>W nowym elemencie
configurationwprowadź te konkretne zamiany wartości wielokropków (...):Configuration Value regionKod regionu istniejącej aplikacji funkcji, taki jak eastus.deploymentStorageAccountNazwa konta magazynowego. deploymentStorageContainerNazwa udziału wdrożenia, która znajduje się po \w wartościcontainerUrl, którą uzyskałeś.userAssignedIdentityResourceIdW pełni kwalifikowany identyfikator zasobu tożsamości zarządzanej, który został uzyskany. Zapisz zmiany w pliku pom.xml .
Teraz możesz użyć narzędzia Maven, aby wdrożyć projekt kodu w istniejącej aplikacji.
Wdrażanie projektu funkcji na platformie Azure
W wierszu polecenia uruchom następujące polecenie:
mvn clean package azure-functions:deployPo pomyślnym wdrożeniu uruchom polecenie Core Tools, aby uzyskać wartość punktu końcowego URL, w tym klucz dostępu:
func azure functionapp list-functions <APP_NAME> --show-keysW tym przykładzie ponownie zastąp
<APP_NAME>nazwą Twojej aplikacji.Skopiuj zwrócony adres URL punktu końcowego i klucz, którego użyjesz do wywołania punktu końcowego funkcji.
Wywoływanie funkcji na platformie Azure
Ponieważ funkcja używa wyzwalacza HTTP i obsługuje żądania GET, wywołuje je, wysyłając żądanie HTTP do adresu URL przy użyciu klucza dostępu na poziomie funkcji. Najłatwiej jest wykonać żądanie GET w przeglądarce.
Wklej adres URL i klucz dostępu skopiowany na pasek adresu przeglądarki.
Adres URL punktu końcowego powinien wyglądać mniej więcej tak:
https://contoso-app.azurewebsites.net/api/httpexample?code=aabbccdd...
W takim przypadku należy również podać klucz dostępu w ciągu zapytania podczas wysyłania żądania GET do adresu URL punktu końcowego. Użycie klucza dostępu jest zalecane w celu ograniczenia dostępu od klientów losowych. Podczas wykonywania żądania POST przy użyciu klienta HTTP należy zamiast tego podać klucz dostępu w nagłówku x-functions-key .
Po przejściu do tego adresu URL przeglądarka powinna wyświetlić podobne dane wyjściowe, jak po uruchomieniu funkcji lokalnie.
Uprzątnij zasoby
Jeśli przejdziesz do następnego kroku i dodasz powiązanie wyjściowe kolejki usługi Azure Storage, zachowaj wszystkie zasoby na miejscu, ponieważ będziesz rozwijać to, co już zrobiłeś.
W przeciwnym razie użyj następującego polecenia, aby usunąć grupę zasobów i wszystkie zawarte w niej zasoby, aby uniknąć ponoszenia dalszych kosztów.
az group delete --name AzureFunctionsQuickstart-rg