Az első tárolóalapú Azure Functions létrehozása
Ebben a cikkben egy Linux-tárolóban futó függvényalkalmazást hoz létre, és üzembe helyezi azt az Azure Functionsben.
A függvénykód tárolóban való üzembe helyezéséhez prémium szintű csomag vagy dedikált (App Service-) csomag üzemeltetése szükséges. A cikk elvégzése néhány amerikai dollárnyi költséget jelent az Azure-fiókjában, amelyet az erőforrások tisztításával minimalizálhat, ha végzett.
A függvényalkalmazás-tároló Azure-ban való üzembe helyezésének további lehetőségei a következők:
Azure Container Apps: További információ: Tároló üzembe helyezése az Azure Container Appsben.
Az Azure Arc (jelenleg előzetes verzióban): további információ: Tároló üzembe helyezése az Azure Arcban.
Fejlesztési nyelv kiválasztása
Először az Azure Functions-eszközökkel hozza létre a projektkódot függvényalkalmazásként egy Docker-tárolóban egy nyelvspecifikus Linux-alaprendszerkép használatával. Ügyeljen arra, hogy a cikk tetején válassza ki a választott nyelvet.
A Core Tools automatikusan létrehoz egy Docker-fájlt a projekthez, amely a függvénynyelvhez a megfelelő alaprendszerkép legfrissebb verzióját használja. Rendszeresen frissítenie kell a tárolót a legújabb alaprendszerképről, és újból üzembe kell helyeznie a tároló frissített verziójából. További információ: Tárolóalapú függvényalkalmazások létrehozása.
Előfeltételek
A kezdés előtt a következő követelményekkel kell rendelkeznie:
Telepítse a .NET 8.0 SDK-t.
Telepítse az Azure Functions Core Tools 4.0.5198-es vagy újabb verzióját.
- Telepítse az Azure Functions Core Tools 4.x-es verzióját.
- Telepítse az Azure Functions által támogatott Node.js verzióját.
- Telepítse az Azure Functions által támogatott Python-verziót.
- Telepítse a .NET 6 SDK-t.
Telepítse az Azure Functions által támogatott Java Developer Kit-verziót.
Telepítse az Apache Maven 3.0-s vagy újabb verzióját.
- Az Azure CLI 2.4-es vagy újabb verziója.
Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
A tárolóregisztrációs adatbázisban létrehozott tárolóalapú függvényalkalmazás-rendszerkép közzétételéhez a helyi számítógépen futó Docker-azonosítóra és Dockerre van szükség. Ha nem rendelkezik Docker-azonosítóval, létrehozhat egy Docker-fiókot.
A beállításjegyzék-példány létrehozásához a Tárolóregisztrációs adatbázis gyorsútmutatójának Tárolóregisztrációs adatbázis létrehozása szakaszát is be kell fejeznie. Jegyezze fel a teljes bejelentkezési kiszolgáló nevét.
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 .venv
lé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 további parancsot futtat.
A helyi függvényprojekt létrehozása és tesztelése
Egy terminálban vagy parancssorban futtassa a következő parancsot a választott nyelvhez egy függvényalkalmazás-projekt létrehozásához az aktuális mappában:
func init --worker-runtime dotnet-isolated --docker
func init --worker-runtime node --language javascript --docker
func init --worker-runtime powershell --docker
func init --worker-runtime python --docker
func init --worker-runtime node --language typescript --docker
Egy üres mappában futtassa a következő parancsot a Functions-projekt Maven-archetípusból való létrehozásához:
mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=8 -Ddocker
A -DjavaVersion
paraméter közli a Functions futtatókörnyezetével, hogy melyik Java-verziót használja. Használja a -DjavaVersion=11
kapcsolót, ha a függvényeket Java 11-en szeretné futtatni. Ha nem adja meg -DjavaVersion
, a Maven alapértelmezés szerint Java 8 lesz. További információ: Java-verziók.
Fontos
A JAVA_HOME
cikk elvégzéséhez a környezeti változót a JDK megfelelő verziójának telepítési helyére kell állítani.
A Maven a projekt üzembe helyezéshez szükséges értékeit kéri. Kövesse az utasításokat, és adja meg a következő információkat:
Felszólítás | Érték | Leírás |
---|---|---|
groupId | com.fabrikam |
Olyan érték, amely egyedileg azonosítja a projektet az összes projektben, a Java csomagelnevezési szabályait követve. |
artifactId | fabrikam-functions |
Olyan érték, amely a jar neve, verziószám nélkül. |
verzió | 1.0-SNAPSHOT |
Válassza ki az alapértelmezett értéket. |
csomag | com.fabrikam.functions |
Egy érték, amely a létrehozott függvénykód Java-csomagja. Használja az alapértelmezettet. |
Írja be Y
vagy nyomja le az Enter billentyűt a megerősítéshez.
A Maven egy artifactId nevű új mappában hozza létre a projektfájlokat, amely ebben a példában az fabrikam-functions
.
A --docker
beállítás létrehoz egy Docker-fájlt a projekthez, amely egy megfelelő tárolót határoz meg az Azure Functionsben és a kiválasztott futtatókörnyezetben való használatra.
Navigáljon a projektmappába:
cd fabrikam-functions
Az alábbi paranccsal hozzáadhat egy függvényt a projekthez, ahol az --name
argumentum a függvény egyedi neve, az --template
argumentum pedig a függvény eseményindítóját határozza meg. func new
C#-kódfájlt hoz létre a projektben.
func new --name HttpExample --template "HTTP trigger"
Az alábbi paranccsal hozzáadhat egy függvényt a projekthez, ahol az --name
argumentum a függvény egyedi neve, az --template
argumentum pedig a függvény eseményindítóját határozza meg. func new
létrehoz egy function.json nevű konfigurációs fájlt tartalmazó függvénynévnek megfelelő almappát.
func new --name HttpExample --template "HTTP trigger"
A függvény helyi teszteléséhez indítsa el a helyi Azure Functions futtatókörnyezet-gazdagépet a projektmappa gyökerében.
func start
func start
npm install
npm start
mvn clean package
mvn azure-functions:run
Miután látta a HttpExample
kimenetre írt végpontot, lépjen erre a végpontra. A válasz kimenetében egy üdvözlő üzenetnek kell megjelennie.
Miután látta a HttpExample
kimenetre írt végpontot, lépjen a következőre http://localhost:7071/api/HttpExample?name=Functions
: . A böngészőnek meg kell jelennie egy "hello" üzenetnek, amely visszaköszön Functions
a lekérdezési paraméterhez megadott értékre name
.
A gazdagép leállításához nyomja le a Ctrl C billentyűkombinációt+(macOS rendszeren a C parancsot).+
A tárolólemezkép létrehozása és helyi ellenőrzése
(Nem kötelező) Vizsgálja meg a Dockerfile-t a projektmappa gyökerében. A Dockerfile leírja a függvényalkalmazás Linuxon való futtatásához szükséges környezetet. Az Azure Functions támogatott alaprendszerképeinek teljes listája az Azure Functions alaprendszerkép oldalán található.
A gyökérprojekt mappában futtassa a docker buildelési parancsot, adjon meg egy nevet azurefunctionsimage
, és címkézze a következőt v1.0.0
: . A <DOCKER_ID>
helyére a Docker Hub-fiók azonosítóját írja. Ez a parancs létrehozza a tároló Docker-rendszerképét.
docker build --tag <DOCKER_ID>/azurefunctionsimage:v1.0.0 .
A parancs befejeződésekor helyileg futtathatja az új tárolót.
A build ellenőrzéséhez futtassa a lemezképet egy helyi tárolóban a Docker-futtatási paranccsal, cserélje le <DOCKER_ID>
ismét a Docker Hub-fiók azonosítójára, és adja hozzá a portok argumentumát a következőként -p 8080:80
:
docker run -p 8080:80 -it <DOCKER_ID>/azurefunctionsimage:v1.0.0
Miután a rendszerkép a helyi tárolóban kezdődött, keresse meg http://localhost:8080/api/HttpExample
a következőt, amelynek ugyanazt az üdvözlő üzenetet kell megjelenítenie, mint korábban. Mivel a létrehozott HTTP-aktivált függvény névtelen hitelesítést használ, meghívhatja a tárolóban futó függvényt anélkül, hogy hozzáférési kulcsot kellene beszereznie. További információ: engedélyezési kulcsok.
Miután a rendszerkép a helyi tárolóban kezdődött, keresse meg http://localhost:8080/api/HttpExample?name=Functions
a következőt, amelynek ugyanazt a "hello" üzenetet kell megjelenítenie, mint korábban. Mivel a létrehozott HTTP-aktivált függvény névtelen hitelesítést használ, meghívhatja a tárolóban futó függvényt anélkül, hogy hozzáférési kulcsot kellene beszereznie. További információ: engedélyezési kulcsok.
Miután ellenőrizte a függvényalkalmazást a tárolóban, a végrehajtás leállításához nyomja le a Ctrl C billentyűkombinációt+(macOS-en a C parancsot).+
A tárolólemezkép közzététele egy beállításjegyzékben
Ha elérhetővé szeretné tenni a tárolólemezképet egy üzemeltetési környezetben való üzembe helyezéshez, le kell küldenie egy tárolóregisztrációs adatbázisba.
Az Azure Container Registry egy privát beállításjegyzék-szolgáltatás a tárolólemezképek és a kapcsolódó összetevők létrehozásához, tárolásához és kezeléséhez. A tárolók Azure-szolgáltatásokban való közzétételéhez magánregisztrációs szolgáltatást kell használnia.
Ezzel a paranccsal jelentkezzen be a beállításjegyzék-példányba a jelenlegi Azure-hitelesítő adataival:
az acr login --name <REGISTRY_NAME>
Az előző parancsban cserélje le
<REGISTRY_NAME>
a Container Registry-példány nevét.Ezzel a paranccsal címkézheti meg a rendszerképet a regisztrációs adatbázis bejelentkezési kiszolgálójának teljes nevével:
docker tag <DOCKER_ID>/azurefunctionsimage:v1.0.0 <LOGIN_SERVER>/azurefunctionsimage:v1.0.0
Cserélje le
<LOGIN_SERVER>
a regisztrációs adatbázis bejelentkezési kiszolgálójának teljes nevét és<DOCKER_ID>
a Docker-azonosítóját.Ezzel a paranccsal leküldheti a tárolót a beállításjegyzék-példányba:
docker push <LOGIN_SERVER>/azurefunctionsimage:v1.0.0
Támogató Azure-erőforrások létrehozása a függvényhez
Mielőtt üzembe helyezheti a tárolót az Azure-ban, három erőforrást kell létrehoznia:
- Egy erőforráscsoport, amely a kapcsolódó erőforrások logikai tárolója.
- Storage-fiók, amely az állapot és a függvényekkel kapcsolatos egyéb információk fenntartására szolgá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.
Ezeket az elemeket az alábbi parancsokkal hozhatja létre. Az Azure CLI és a PowerShell is támogatott. Az Azure-erőforrások Azure PowerShell-lel való létrehozásához szükség van az 5.9.0-s vagy újabb verziójú Az PowerShell-modulra is.
Ha még nem tette meg, jelentkezzen be az Azure-ba.
az login
A
az login
parancs bejelentkezik az Azure-fiókjába.Hozzon létre egy erőforráscsoportot
AzureFunctionsContainers-rg
a kiválasztott régióban.az group create --name AzureFunctionsContainers-rg --location <REGION>
A
az group create
parancs létrehoz egy erőforráscsoportot. A fenti parancsban cserélje le<REGION>
az Önhöz közeli régióra az az account list-locations parancsból visszaadott elérhető régiókódot.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 AzureFunctionsContainers-rg --sku Standard_LRS
A
az storage account create
parancs létrehozza a tárfiókot.Az előző példában cserélje le
<STORAGE_NAME>
az Ön számára megfelelő és az Azure Storage-ban egyedi nevet. A tárneveknek csak 3–24 karakterből álló számokat és kisbetűket kell tartalmazniuk.Standard_LRS
a Functions által támogatott általános célú fiókot határoz meg.A paranccsal prémium csomagot hozhat létre az Azure Functionshez
myPremiumPlan
az Elastic Premium 1 tarifacsomagban (--sku EP1
), az Önben<REGION>
és egy Linux-tárolóban (--is-linux
).az functionapp plan create --resource-group AzureFunctionsContainers-rg --name myPremiumPlan --location <REGION> --number-of-workers 1 --sku EP1 --is-linux
Itt a Prémium csomagot használjuk, amely igény szerint méretezhető. Az üzemeltetéssel kapcsolatos további információkért tekintse meg az Azure Functions üzemeltetési terveinek összehasonlítását. A költségek kiszámításáról további információt a Functions díjszabási oldalán talál.
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. A példány nem jár költségekkel, amíg nem aktiválja.
Függvényalkalmazás létrehozása és konfigurálása az Azure-ban a rendszerképpel
Az Azure-beli függvényalkalmazás felügyeli a függvények végrehajtását az Azure Functions üzemeltetési csomagjában. Ebben a szakaszban az előző szakasz Azure-erőforrásait használva létrehoz egy függvényalkalmazást egy tárolóregisztrációs adatbázis rendszerképéből, és konfigurálja egy kapcsolati sztring az Azure Storage-ba.
A tárolóregisztrációs adatbázistól függően hozzon létre egy függvényalkalmazást a következő paranccsal:
az functionapp create --name <APP_NAME> --storage-account <STORAGE_NAME> --resource-group AzureFunctionsContainers-rg --plan myPremiumPlan --image <LOGIN_SERVER>/azurefunctionsimage:v1.0.0 --registry-username <USERNAME> --registry-password <SECURE_PASSWORD>
Ebben a példában cserélje le
<STORAGE_NAME>
a tárfiók előző szakaszában használt nevet. Cserélje le<APP_NAME>
az Önnek<DOCKER_ID>
megfelelő globálisan egyedi nevet, illetve<LOGIN_SERVER>
a Docker Hub-fiókazonosítót vagy a Container Registry-kiszolgálót. Egyéni tárolóregisztrációs adatbázisból történő üzembe helyezéskor a rendszerkép neve a beállításjegyzék URL-címét jelzi.A függvényalkalmazás első létrehozásakor a rendszer lekéri a kezdeti képet a Docker Hubról. A tárolóregisztrációs adatbázisból is engedélyezheti a folyamatos üzembe helyezést az Azure-ban.
Tipp.
A host.json fájlban található beállítással
DisableColor
megakadályozhatja, hogy az ANSI vezérlőkarakterek a tárolónaplókba legyenek írva.A következő paranccsal kérje le a létrehozott tárfiók kapcsolati sztring:
az storage account show-connection-string --resource-group AzureFunctionsContainers-rg --name <STORAGE_NAME> --query connectionString --output tsv
A tárfiók kapcsolati sztring a parancs használatával
az storage account show-connection-string
adja vissza.Cserélje le
<STORAGE_NAME>
a korábban létrehozott tárfiók nevére.A következő paranccsal adja hozzá a beállítást a függvényalkalmazáshoz:
az functionapp config appsettings set --name <APP_NAME> --resource-group AzureFunctionsContainers-rg --settings AzureWebJobsStorage=<CONNECTION_STRING>
A
az functionapp config appsettings set
parancs létrehozza a beállítást.Ebben a parancsban cserélje le
<APP_NAME>
a függvényalkalmazás nevére és<CONNECTION_STRING>
az előző lépés kapcsolati sztring. A kapcsolatnak egy hosszú kódolt sztringnek kell lennie, amely a következővelDefaultEndpointProtocol=
kezdődik: .A függvény most már használhatja ezt a kapcsolati sztring a tárfiók eléréséhez.
A függvények ellenőrzése az Azure-ban
Az Azure-ban a függvényalkalmazásban üzembe helyezett rendszerkép használatával mostantól HTTP-kérésekkel hívhatja meg a függvényt.
Futtassa a következő
az functionapp function show
parancsot az új függvény URL-címének lekéréséhez:az functionapp function show --resource-group AzureFunctionsContainers-rg --name <APP_NAME> --function-name HttpExample --query invokeUrlTemplate
Cserélje le
<APP_NAME>
a függvényalkalmazás nevére.
- Használja az imént beszerzett URL-címet a
HttpExample
függvényvégpont meghívásához a lekérdezési sztring?name=Functions
hozzáfűzésével.
- Használja az imént beszerzett URL-címet a függvényvégpont meghívásához
HttpExample
.
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.
Az erőforrások eltávolítása
Ha továbbra is használni szeretné az Azure-függvényt a cikkben létrehozott erőforrások használatával, ezeket az erőforrásokat a helyén hagyhatja. Mivel prémium szintű csomagot hozott létre az Azure Functionshez, napi egy vagy két USD-t kell számolnia a folyamatos költségekkel.
A folyamatos költségek elkerülése érdekében törölje az erőforráscsoportot a AzureFunctionsContainers-rg
csoport összes erőforrásának törléséhez:
az group delete --name AzureFunctionsContainers-rg