Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ebben a cikkben helyi parancssori eszközökkel hoz létre egy HTTP-kérelmekre reagáló függvényt. A kód helyi ellenőrzése után üzembe helyezi azt egy kiszolgáló nélküli Flex Consumption üzemeltetési csomagban az Azure Functionsben.
A gyorsindítás elvégzése néhány USD cent vagy még kevesebb költséggel járhat az Azure-fiókjában.
Ügyeljen arra, hogy a cikk tetején válassza ki az előnyben részesített fejlesztési nyelvet.
Important
A Azure Functions támogatása jelenleg nyilvános előzetes verzióban érhető el. Az előzetes verzióban a Go függvényalkalmazások csak a Rugalmas használat csomagban támogatottak.
Prerequisites
- Egy Azure-fiók, aktív előfizetéssel. Hozzon létre egy fiókot ingyenesen.
-
Java 17 Fejlesztői készlet
- Ha a Java egy másik támogatott verzióját használja, frissítenie kell a projekt pom.xml fájlját.
- A
JAVA_HOMEkörnyezeti változót a Java Development Kit (JDK) megfelelő verziójának telepítési helyére kell állítani.
- Apache Maven 3.8.x
Go 1.24 vagy újabb.
Azure Functions Core Tools verzió
4.12vagy újabb. Futtassafunc --versiona telepített verzió ellenőrzéséhez.Azure CLI verzió
2.87.0vagy újabb. Futtassaaz versiona telepített verzió ellenőrzéséhez.
- Rust eszközkészlet a rustup használatával. Használja a
rustc --versionparancsot verziójának ellenőrzéséhez.
- A
jqJSON-kimenet elemzésére használt JSON-parancssori processzor, amely az Azure Cloud Shellben is elérhető.
Az Azure Functions Core Tools telepítése
A Core Tools telepítésének ajánlott módja a helyi fejlesztőszámítógép operációs rendszerétől függ.
Az alábbi lépések windowsos telepítővel (MSI) telepítik a Core Tools v4.x-et. További információ más csomagalapú telepítőkről a Core Tools readme-ben található.
Töltse le és futtassa a Core Tools telepítőt a Windows-verzió alapján:
- v4.x – Windows 64 bites (ajánlott. A Visual Studio Code hibakereséséhez 64 bitesre van szükség.)
- v4.x – Windows 32 bites
Ha korábban windowsos telepítőt (MSI) használt a Core Tools windowsos telepítéséhez, a legújabb verzió telepítése előtt el kell távolítania a régi verziót a Programok eltávolítása bővítményből.
Jótanács
A Core Tools linuxos Windows-alrendszerre (WSL) való telepítéséhez kövesse a Linux lapon található utasításokat.
Virtuális környezet létrehozása és aktiválása
Egy megfelelő mappában futtassa az alábbi parancsokat egy virtuális környezet .venvlétrehozásához és aktiválásához. Mindenképpen használja az Azure Functions által támogatott Python-verziókat .
python -m venv .venv
source .venv/bin/activate
Ha a Python nem telepítette a venv-csomagot a Linux-disztribúcióra, futtassa a következő parancsot:
sudo apt-get install python3-venv
Ebben az aktivált virtuális környezetben minden utána következő parancsot futtat.
Helyi kódprojekt és függvény létrehozása
Az Azure Functionsben a kódprojekt egy olyan alkalmazás, amely egy vagy több egyedi függvényt tartalmaz, amelyek mindegyike egy adott eseményindítóra válaszol. A projekt összes függvénye ugyanazokkal a konfigurációkkal rendelkezik, és egységként van üzembe helyezve az Azure-ban. Ebben a szakaszban egy kódprojektet hoz létre, amely egyetlen függvényt tartalmaz.
Futtassa a
func initparancsot egy Go-függvényprojekt létrehozásához:func init MyGoFunctionApp --worker-runtime goEz a parancs létrehoz egy projektmappát,
MyGoFunctionAppamely a következő fájlokat tartalmazza:File Description host.jsonA függvényalkalmazás gazdagépkonfigurációja. local.settings.jsonHelyi futtatáskor használt beállítások. main.goBelépési pont egy HTTP által aktivált mintafüggvénnyel. go.modGo modulfájl függőségkezeléshez. go.sumGo modul ellenőrzőösszegfájlja. Keresse meg a projektmappát:
cd MyGoFunctionAppNyissa meg
main.goa létrehozott kód áttekintéséhez. Egy HTTP által aktivált mintafüggvényt tartalmaz:package main import ( "log" "net/http" "github.com/azure/azure-functions-golang-worker/sdk" "github.com/azure/azure-functions-golang-worker/worker" ) // HTTPTriggerHandler handles standard HTTP requests func HTTPTriggerHandler(w http.ResponseWriter, r *http.Request) { log.Printf("Processing HTTP Trigger for %s", r.URL.Path) w.WriteHeader(http.StatusOK) w.Write([]byte("Hello from Go Worker!")) } func main() { app := sdk.FunctionApp() app.HTTP("hello", HTTPTriggerHandler, sdk.WithMethods("GET", "POST"), sdk.WithAuth("anonymous"), ) worker.Start(app) }A Go függvények a HTTP-eseményindítók standard
net/httptípusait (http.ResponseWriterés*http.Request) használják. A függvények a Go Worker SDK és a funkcionális beállítások használatával amain()alatt vannak regisztrálva, és nincs szükségfunction.jsonfájlokra.
Egy terminálban vagy parancssorban futtassa ezt a
func initparancsot egy függvényalkalmazás-projekt létrehozásához az aktuális mappában:func init --worker-runtime dotnet-isolated
Egy terminálban vagy parancssorban futtassa ezt a
func initparancsot egy függvényalkalmazás-projekt létrehozásához az aktuális mappában:func init --worker-runtime node --language javascript
Egy terminálban vagy parancssorban futtassa ezt a
func initparancsot egy függvényalkalmazás-projekt létrehozásához az aktuális mappában:func init --worker-runtime powershell
Egy terminálban vagy parancssorban futtassa ezt a
func initparancsot egy függvényalkalmazás-projekt létrehozásához az aktuális mappában:func init --worker-runtime python
Egy terminálban vagy parancssorban futtassa ezt a
func initparancsot egy függvényalkalmazás-projekt létrehozásához az aktuális mappában:func init --worker-runtime node --language typescript
Egy terminálban vagy parancssorban futtassa ezt a
func initparancsot egy függvényalkalmazás-projekt létrehozásához az aktuális mappában:func init --worker-runtime custom
Egy üres mappában futtassa ezt a
mvnparancsot a kódprojekt létrehozásához egy Azure Functions Maven-archetípusból:mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=17A Maven kéri azokat az értékeket, amelyek szükségesek a projekt generálásának befejezéséhez az üzembe helyezés során.
Amikor a rendszer kéri, adja meg a következő értékeket:Prompt Value Description groupId com.fabrikamOlyan érték, amely egyedileg azonosítja a projektet az összes projektben, a Java csomagelnevezési szabályait követve. artifactId fabrikam-functionsOlyan érték, amely a jar neve, verziószám nélkül. version 1.0-SNAPSHOTVálassza ki az alapértelmezett értéket. package com.fabrikamEgy érték, amely a létrehozott függvénykód Java-csomagja. Használja az alapértelmezettet. Írja be
Yvagy nyomja le az Enter billentyűt a megerősítéshez.A Maven egy új mappában hozza létre a projektfájlokat az artifactId nevű mappában, amely ebben a példában az
fabrikam-functions.Navigáljon a projektmappába:
cd fabrikam-functionsAz új HTTP trigger függvény sablon által létrehozott kódját a Function.java fájlban találja a \src\main\java\com\fabrikam projektkönyvtárban.
Ezzel a
func newparanccsal adhat hozzá egy függvényt a projekthez:func new --name HttpExample --template "HTTP trigger" --authlevel "function"A program hozzáad egy új kódfájlt a projekthez. Ebben az esetben az
--nameargumentum a függvény egyedi neve (HttpExample) és az--templateargumentum egy HTTP-eseményindítót határoz meg.
A projekt gyökérmappája különböző fájlokat tartalmaz a projekthez, beleértve a local.settings.json és host.jsonnevű konfigurációs fájlokat. Mivel a local.settings.json fájl titkokat tartalmazhat, amelyeket az Azure-ból töltöttek le, a fájl alapértelmezés szerint a .gitignore fájlban ki van zárva a forrásvezérlésből.
A függvény létrehozása és felépítése
A HttpExample mappa function.json fájlja HTTP-eseményindító függvényt deklarál. A függvényt egy kezelő hozzáadásával és végrehajthatóvá alakításával hajthatja végre.
Nyomja le a Ctrl + Shift+ billentyűkombinációt, vagy a Terminál menü Új terminál elemétválasztva nyisson meg egy új integrált terminált a VS Code-ban.
A függvényalkalmazás gyökérmappájában (ugyanaz a mappa, mint host.json) inicializáljon egy Rust nevű
handlerprojektet.cargo init --name handlerA Cargo.toml fájlban adja hozzá a rövid útmutató elvégzéséhez szükséges alábbi függőségeket. A példa a warp webkiszolgáló-keretrendszert használja.
[dependencies] warp = "0.3" tokio = { version = "1", features = ["rt", "macros", "rt-multi-thread"] }Az src/main.rs fájlban adja hozzá a következő kódot, és mentse a fájlt. Ez a te egyéni Rust-kezelőd.
use std::collections::HashMap; use std::env; use std::net::Ipv4Addr; use warp::{http::Response, Filter}; #[tokio::main] async fn main() { let example1 = warp::get() .and(warp::path("api")) .and(warp::path("HttpExample")) .and(warp::query::<HashMap<String, String>>()) .map(|p: HashMap<String, String>| match p.get("name") { Some(name) => Response::builder().body(format!("Hello, {}. This HTTP triggered function executed successfully.", name)), None => Response::builder().body(String::from("This HTTP triggered function executed successfully. Pass a name in the query string for a personalized response.")), }); let port_key = "FUNCTIONS_CUSTOMHANDLER_PORT"; let port: u16 = match env::var(port_key) { Ok(val) => val.parse().expect("Custom Handler port is not a number!"), Err(_) => 3000, }; warp::serve(example1).run((Ipv4Addr::LOCALHOST, port)).await }Állítson össze egy bináris fájlt az egyéni kezelőhöz. A függvényalkalmazás gyökérmappájában egy
handlernevű végrehajtható fájl jön létre (handler.exeWindows rendszeren).cargo build --release cp target/release/handler .
A függvényalkalmazás konfigurálása
A függvénygazdát úgy kell konfigurálni, hogy induláskor futtassa az egyéni kezelő binárisát.
Nyissa meg a host.json.
A
customHandler.descriptionszakaszban állítsa a(z)defaultExecutablePathértékéthandler-re (Windows rendszeren állítsahandler.exe-ra).customHandlerA szakaszban adjon hozzá egy elnevezettenableForwardingHttpRequesttulajdonságot, és állítsa az értékét a következőretrue: . A csak HTTP-eseményindítóból álló függvények esetében ez a beállítás leegyszerűsíti a programozást, mivel lehetővé teszi, hogy az egyéni kezelőkérés hasznos adatai helyett egy tipikus HTTP-kéréssel dolgozzon.Győződjön meg arról, hogy a
customHandlerszakasz az alábbi példához hasonlóan néz ki. Mentse a fájlt."customHandler": { "description": { "defaultExecutablePath": "handler", "workingDirectory": "", "arguments": [] }, "enableForwardingHttpRequest": true }
A függvényalkalmazás úgy van konfigurálva, hogy elindítsa az egyéni kezelőprogram futtatható fájlját.
A függvény helyi futtatása
Ellenőrizze az új függvényt a projekt helyi futtatásával és a függvényvégpont meghívásával.
Ezzel a paranccsal indítsa el a helyi Azure Functions-futtatókörnyezet-gazdagépet a projektmappa gyökerében:
func startnpm install npm startmvn clean package mvn azure-functions:runA kimenet vége felé a következő sorok jelennek meg:
... 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 ...A kimenet vége felé megjelenik a függvény HTTP-végpontja:
Functions: hello: [GET,POST] http://localhost:7071/api/helloHívja meg a függvényvégpontot annak ellenőrzéséhez, hogy működik-e:
Másolja a függvény URL-címét
HttpExampleebből a kimenetből egy böngészőbe, és keresse meg a függvény URL-címét. A "hello world" üzenettel sikeres választ kell kapnia.Note
Mivel a hozzáférési kulcs engedélyezése helyi futtatáskor nincs kényszerítve, a visszaadott függvény URL-címe nem tartalmazza a hozzáférési kulcs értékét, és nincs rá szüksége a függvény meghívásához.
Ha a függvény helyileg fut, nyisson meg egy böngészőt, és keresse meg a következő URL-címet:
http://localhost:7071/api/helloA következő választ kell látnia:
Hello from Go Worker!Ha elkészült, használja Ctrl+C, és állítsa le a függvénygazdát.
Támogató Azure-erőforrások létrehozása a függvényhez
Mielőtt üzembe helyezheti a függvénykódot az Azure-ban, létre kell hoznia az alábbi erőforrásokat:
- Egy erőforráscsoport, amely a kapcsolódó erőforrások logikai tárolója.
- Egy alapértelmezett Storage-fiók, amelyet a Functions-gazdagép használ az állapot és a függvényekkel kapcsolatos egyéb információk fenntartásához.
- A felhasználó által kijelölt felügyelt identitás, amelyet a Functions-gazdagép az alapértelmezett tárfiókkal való csatlakozáshoz használ.
- Egy függvényalkalmazás, amely a függvénykód végrehajtásához biztosítja a környezetet. A függvényalkalmazások leképezik a helyi függvényprojektet, és lehetővé teszi a függvények logikai egységként való csoportosítását az erőforrások egyszerűbb kezelése, üzembe helyezése és megosztása érdekében.
Az alábbi lépésekben az Azure CLI-parancsokkal hozhatja létre a szükséges erőforrásokat.
Ha még nem tette meg, jelentkezzen be az Azure-ba:
az loginA
az loginparancs bejelentkezteti Önt az Azure-fiókjába. Hagyja ki ezt a lépést az Azure Cloud Shellben való futtatáskor.Ha még nem tette meg, a
az extension addkövetkező paranccsal telepítse az Application Insights bővítményt:az extension add --name application-insightsEzzel az az group create paranccsal hozzon létre egy, a kiválasztott régióban elnevezett
AzureFunctionsQuickstart-rgerőforráscsoportot:az group create --name "AzureFunctionsQuickstart-rg" --location "<REGION>"Ebben a példában cserélje le
<REGION>egy Önhöz közeli régióra, amely támogatja a Flex Consumption csomagot. Az az functionapp list-flexconsumption-locations paranccsal megtekintheti a jelenleg támogatott régiók listáját.Ezzel az az storage account create paranccsal hozzon létre egy általános célú tárfiókot az erőforráscsoportban és a régióban:
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 false** Ebben a példában cserélje le a
<STORAGE_NAME>-t egy olyan névre, amely megfelelő Önnek és egyedi az Azure Storage-ban. A neveknek csak három-24 karakterből álló számokat és kisbetűket kell tartalmazniuk.Standard_LRSegy általános célú fiókot határoz meg, amelyet a Functions támogat. Ez az új fiók csak olyan Microsoft Entra által hitelesített identitások használatával érhető el, amelyek adott erőforrásokhoz kaptak engedélyeket.Ezzel a szkripttel hozzon létre egy felhasználó által hozzárendelt felügyelt identitást, elemezje az objektum visszaadott JSON-tulajdonságait a használatával
jq, és adjonStorage Blob Data Ownerengedélyeket az alapértelmezett tárfiókban: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 $storageIdHa nincs meg a
jqsegédprogram a helyi Bash rendszerhéjában, az elérhető az Azure Cloud Shellben. Ebben a példában cserélje ki a<STORAGE_NAME>helyére az alapértelmezett tárfiók nevét, és a<REGION>helyére a régiót.Az az identity create parancs létrehoz egy identitást.
func-host-storage-userA visszaadottprincipalIdparancs használatával engedélyeket rendelhet ehhez az új identitáshoz az alapértelmezett tárfiókbanaz role assignment create. Aaz storage account showparancs a tárfiók azonosítójának lekérésére szolgál.Ezzel az az functionapp create paranccsal hozza létre a függvényalkalmazást az Azure-ban:
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"Ebben a példában cserélje le ezeket a helyőrzőket a megfelelő értékekre:
-
<APP_NAME>: az Ön számára megfelelő globálisan egyedi név. Az<APP_NAME>egyben a függvényalkalmazás alapértelmezett DNS-tartományaként is szolgál, -
<STORAGE_NAME>: az előző lépésben használt fiók neve. -
<REGION>: az aktuális régió. -
<LANGUAGE_VERSION>: használja ugyanazt a támogatott nyelvi verzióját, amelyet helyben tesztelt, amikor alkalmazható.
Ez a parancs létrehoz egy függvényalkalmazást, amely a megadott linuxos nyelvi futtatókörnyezetben fut a Rugalmas használat csomagban, amely ingyenes az itt felmerülő használatért. A parancs egy társított Azure-alkalmazás Insights-példányt is létrehoz ugyanabban az erőforráscsoportban, amellyel figyelheti a függvényalkalmazások végrehajtását és megtekintheti a naplókat. További információ: Az Azure Functions monitorozása. Az instance nem okoz költségeket addig, amíg nem aktiválja.
-
Ezzel a szkripttel hozzáadhatja a felhasználó által hozzárendelt felügyelt identitást a Monitorozási metrikák közzétevője szerepkörhöz az Application Insights-példányban:
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 $appInsightsEbben a példában cserélje le a(z)
<APP_NAME>elemet a függvényalkalmazás nevére. Az az role assignment create parancs hozzáadja a felhasználót a szerepkörhöz. Az Application Insights-példány erőforrás-azonosítóját és a felhasználó főazonosítóját az az monitor app-insights komponens show ésaz identity showparancsok használatával szerezheti be.
Alkalmazásbeállítások frissítése
Ha engedélyezni szeretné a Functions-gazdagép számára, hogy megosztott titkos kódokkal csatlakozzon az alapértelmezett tárfiókhoz, cserélje le a AzureWebJobsStorage kapcsolati sztringbeállítást több előtaggal ellátott beállításra AzureWebJobsStorage__. Ezek a beállítások egy összetett beállítást határoznak meg, amelyet az alkalmazás a tárolóhoz és az Application Insightshoz való csatlakozáshoz használ egy felhasználó által hozzárendelt felügyelt identitással.
Ezzel a szkripttel lekérheti a felhasználó által hozzárendelt felügyelt identitás ügyfél-azonosítóját, és használatával definiálhat felügyelt identitáskapcsolatokat a Storage és az Application Insights számára is:
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"Ebben a szkriptben cserélje le a
<APP_NAME>és<STORAGE_NAME>helyőrzőket a függvényalkalmazás és a tárfiók nevére, ennek sorrendjében.Futtassa az az functionapp config appsettings delete parancsot a meglévő
AzureWebJobsStoragekapcsolati karakterlánc beállítás eltávolításához, amely egy megosztott titkos kulcsot tartalmaz:az functionapp config appsettings delete --name <APP_NAME> --resource-group "AzureFunctionsQuickstart-rg" --setting-names AzureWebJobsStorageEbben a példában cserélje le
<APP_NAME>a függvényalkalmazás nevére.
Ezen a ponton a Functions-gazdagép biztonságosan csatlakozhat a tárfiókhoz a megosztott titkos kódok helyett felügyelt identitások használatával. Most már üzembe helyezheti a projektkódot az Azure-erőforrásokban.
Támogató Azure-erőforrások létrehozása a függvényhez
Mielőtt üzembe helyezheti a függvénykódot Azure, létre kell hoznia egy erőforráscsoportot, egy tárfiókot és egy függvényalkalmazást. Az alábbi lépésekben az Azure CLI-parancsokkal hozhatja létre a szükséges erőforrásokat.
Ha még nem tette meg, jelentkezzen be az Azure-ba:
az loginA
az loginparancs bejelentkezteti Önt az Azure-fiókjába. Hagyja ki ezt a lépést az Azure Cloud Shellben való futtatáskor.az group createA parancs használatával hozzon létre egy, a kiválasztott régióban elnevezettAzureFunctionsQuickstart-rgerőforráscsoportot:az group create --name AzureFunctionsQuickstart-rg --location <REGION>Ebben a példában cserélje le
<REGION>egy Önhöz közeli régióra, amely támogatja a Flex Consumption csomagot.az functionapp list-flexconsumption-locationsA parancs használatával megtekintheti az aktuálisan támogatott régiók listáját.az storage account createA paranccsal hozzon létre egy általános célú tárfiókot az erőforráscsoportban és a régióban:az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRSEbben a példában cserélje le a(z)
<STORAGE_NAME>elemet egy globálisan egyedi névre. A neveknek 3–24 karaktert kell tartalmazniuk, és csak kisbetűket és számokat kell tartalmazniuk.A függvényalkalmazás létrehozása az Azure-ban:
az functionapp create --resource-group AzureFunctionsQuickstart-rg --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime go --runtime-version 1.0 --functions-version 4Cserélje le
<APP_NAME>egy globálisan egyedi névre és<STORAGE_NAME>az előző lépésben használt fióknévre. Ez a parancs egy társított Azure-alkalmazás Insights-példányt is létrehoz ugyanabban az erőforráscsoportban, amellyel figyelheti a függvényalkalmazást, és megtekintheti a naplókat. További információ: Az Azure Functions monitorozása.Tiltsa le a HTTP/2-t a függvényalkalmazásban, amely a Go nyilvános előzetes verziójában szükséges:
az resource update --resource-group AzureFunctionsQuickstart-rg --resource-type Microsoft.Web/sites --name <APP_NAME> --set properties.siteConfig.http20Enabled=false
A függvényprojekt üzembe helyezése az Azure-ban
Miután sikeresen létrehozta a függvényalkalmazást az Azure-ban, készen áll a helyi függvényprojekt üzembe helyezésére a func azure functionapp publish parancs használatával.
A gyökérprojekt mappájában futtassa ezt a
func azure functionapp publishparancsot:func azure functionapp publish <APP_NAME>Ebben a példában cserélje le a
<APP_NAME>karaktert az alkalmazás nevére. A sikeres üzembe helyezés az alábbi kimenethez hasonló eredményeket jelenít meg (az egyszerűség kedvéért csonkolt):... 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/httpexampleA helyi terminálban vagy parancssorban futtassa ezt a parancsot az URL-végpont értékének lekéréséhez, beleértve a hozzáférési kulcsot is:
func azure functionapp list-functions <APP_NAME> --show-keysEbben a példában ismét cserélje le a
<APP_NAME>elemet az alkalmazása nevére.Másolja ki a visszaadott végpont URL-címét és kulcsát, amelyet a függvényvégpont meghívásához használ.
A pom.xml fájl frissítése
Miután sikeresen létrehozta a függvényalkalmazást az Azure-ban, frissítse a pom.xml fájlt, hogy a Maven üzembe helyezhesse az új alkalmazásban. Ellenkező esetben a Maven új Azure-erőforrásokat hoz létre az üzembe helyezés során.
Az Azure Cloud Shellben ezzel a
az functionapp showparanccsal szerezheti be az üzembehelyezési tároló URL-címét és azonosítóját az új, felhasználó által hozzárendelt felügyelt identitáshoz:az functionapp show --name <APP_NAME> --resource-group AzureFunctionsQuickstart-rg \ --query "{userAssignedIdentityResourceId: properties.functionAppConfig.deployment.storage.authentication.userAssignedIdentityResourceId, \ containerUrl: properties.functionAppConfig.deployment.storage.value}"Ebben a példában cserélje le
<APP_NAME>a függvényalkalmazás nevére.A projekt gyökérkönyvtárában nyissa meg a pom.xml fájlt egy szövegszerkesztőben, keresse meg az
propertieselemet, és frissítse az alábbi tulajdonságértékeket:Tulajdonság megnevezése Value java.versionHasználja ugyanazt a támogatott nyelvi veremverziót , amelyet helyileg ellenőrzött, például 17.azure.functions.maven.plugin.version1.37.1azure.functions.java.library.version3.1.0functionAppNameA függvény-alkalmazás neve az Azure-ban. Keresse meg a
configurationszakasztazure-functions-maven-plugin, és cserélje le erre az XML-töredékre:<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>Az új
configurationelemben hajtsa végre az ellipszis (...) értékeinek konkrét cseréjét.Configuration Value regionA meglévő függvényalkalmazás régiókódja, például eastus.deploymentStorageAccountA tárfiók neve. deploymentStorageContainerAz üzembe helyezési megosztás neve, amely a megszerzett \értéket követicontainerUrlután.userAssignedIdentityResourceIdA felügyelt identitásod teljes erőforrás-azonosítója, amelyet beszereztél. Mentse a módosításokat a pom.xml fájlba.
Mostantól a Maven használatával üzembe helyezheti a kódprojektet a meglévő alkalmazásban.
A függvényprojekt üzembe helyezése az Azure-ban
A parancssorból futtassa a következő parancsot:
mvn clean package azure-functions:deployAz üzembe helyezés sikerességét követően futtassa ezt a Core Tools parancsot az URL-végpont értékének lekéréséhez, beleértve a hozzáférési kulcsot is:
func azure functionapp list-functions <APP_NAME> --show-keysEbben a példában ismét cserélje le a
<APP_NAME>elemet az alkalmazása nevére.Másolja ki a visszaadott végpont URL-címét és kulcsát, amelyet a függvényvégpont meghívásához használ.
A függvényprojekt üzembe helyezése az Azure-ban
Miután sikeresen létrehozta a függvényalkalmazást Azure, készen áll a helyi függvényprojekt üzembe helyezésére. A func azure functionapp publish paranccsal helyezze üzembe a projektet Azure:
func azure functionapp publish <APP_NAME>
Cserélje le <APP_NAME> a függvényalkalmazás nevére.
A függvény meghívása az Azure-ban
Mivel a függvény HTTP-eseményindítót használ, és támogatja a GET kéréseket, a függvényszintű hozzáférési kulccsal http-kérést kell küldenie az URL-címére. A GET-kérések böngészőben való végrehajtása a legegyszerűbb.
Illessze be a böngésző címsorába másolt URL-címet és hozzáférési kulcsot.
A végpont URL-címének a következő példához hasonlóan kell kinéznie:
https://contoso-app.azurewebsites.net/api/httpexample?code=aabbccdd...
Ebben az esetben meg kell adnia egy hozzáférési kulcsot is a lekérdezési sztringben, amikor GET kérést küld a végpont URL-címére. A hozzáférési kulcs használata ajánlott a véletlenszerű ügyfelek hozzáférésének korlátozásához. HA POST-kérést küld HTTP-ügyféllel, ehelyett a fejlécben kell megadnia a x-functions-key hozzáférési kulcsot.
Ha erre az URL-címre lép, a böngészőnek hasonló kimenetet kell megjelenítenie, mint a függvény helyi futtatásakor.
A függvény meghívása az Azure-ban
Az üzembe helyezés befejezése után nyissa meg a következő URL-címet egy böngészőben annak ellenőrzéséhez, hogy a függvény Azure fut-e:
https://<APP_NAME>.azurewebsites.net/api/hello
Ugyanazt Hello from Go Worker! a választ kell látnia, amelyet a függvény helyi futtatásakor látott.
Erőforrások tisztítása
Ha folytatja a következő lépésre, és hozzáad egy Azure Storage-üzenetsor kimeneti kötést, tartsa az összes erőforrást a helyén, miközben a már elvégzett feladatokra épít.
Ellenkező esetben a következő paranccsal törölje az erőforráscsoportot és annak összes benne foglalt erőforrását, hogy elkerülje a további költségek felmerülését.
az group delete --name AzureFunctionsQuickstart-rg
Erőforrások tisztítása
Ha folytatja a következő lépést, tartsa a helyén az összes erőforrást, miközben a már létrehozottakra épít.
Ellenkező esetben a következő paranccsal törölje az erőforráscsoportot és annak összes benne foglalt erőforrását, hogy elkerülje a további költségek felmerülését.
az group delete --name AzureFunctionsQuickstart-rg
Következő lépések
Következő lépések
A Go-függvények fejlesztésével kapcsolatos további információkért tekintse meg a következő forrásokat: