Az első tárolóalapú Azure Functions létrehozása az Azure Arcon (előzetes verzió)
Ebben a cikkben egy Linux-tárolóban futó függvényalkalmazást hoz létre, és üzembe helyezi azt egy Azure Arc-kompatibilis Kubernetes-fürtön egy tárolóregisztrációs adatbázisból. Saját tároló létrehozásakor testre szabhatja a függvényalkalmazás végrehajtási környezetét. További információ: App Service, Functions és Logic Apps az Azure Arcon.
Feljegyzés
Az egyéni tárolók Azure Arc-kompatibilis Kubernetes-fürtön való üzembe helyezésének támogatása jelenleg előzetes verzióban érhető el.
A függvényeket egy Azure Arc-kompatibilis Kubernetes-fürtben is közzéteheti anélkül, hogy először létrehoz egy tárolót. További információ: Az első függvény létrehozása az Azure Arcon (előzetes verzió)
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.
A következő paranccsal jelentkezzen be a beállításjegyzék-példányba:
az acr login --name <REGISTRY_NAME>
Az előző parancsban cserélje le
<REGISTRY_NAME>
a Container Registry-példány nevét.A következő 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.A következő paranccsal küldje le a tárolót a beállításjegyzék-példányra:
docker push <LOGIN_SERVER>/azurefunctionsimage:v1.0.0
A következő paranccsal engedélyezze a beépített rendszergazdai fiókot, hogy a Functions felhasználónévvel és jelszóval tudjon csatlakozni a beállításjegyzékhez:
az acr update -n <REGISTRY_NAME> --admin-enabled true
A következő paranccsal kérje le a rendszergazdai felhasználónevet és jelszót, amelyhez a Functionsnek csatlakoznia kell a beállításjegyzékhez:
az acr credential show -n <REGISTRY_NAME> --query "[username, passwords[0].value]" -o tsv
Fontos
A rendszergazdai fiók felhasználóneve és jelszava fontos hitelesítő adatok. Ügyeljen arra, hogy biztonságosan tárolja őket, és soha ne legyen akadálymentes helyen, például nyilvános adattárban.
App Service Kubernetes-környezet létrehozása
A kezdés előtt létre kell hoznia egy App Service Kubernetes-környezetet egy Azure Arc-kompatibilis Kubernetes-fürthöz.
Feljegyzés
A környezet létrehozásakor jegyezze fel az egyéni hely nevét és az egyéni helyet tartalmazó erőforráscsoport nevét is. Ezekkel megkeresheti az egyéni helyazonosítót, amelyre szüksége lesz a függvényalkalmazás környezetbeli létrehozásakor.
Ha nem hozta létre a környezetet, forduljon a fürt rendszergazdájához.
Azure CLI-bővítmények hozzáadása
Indítsa el a Bash-környezetet az Azure Cloud Shellben.
Mivel ezek a parancssori felületi parancsok még nem részei az alapvető PARANCSSOR-készletnek, adja hozzá őket a következő parancsokkal:
az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube
Azure-erőforrások létrehozása
Mielőtt üzembe helyezheti a tárolót az új App Service Kubernetes-környezetben, két további erőforrást kell létrehoznia:
- Tárfiók. Bár ez a cikk létrehoz egy tárfiókot, bizonyos esetekben előfordulhat, hogy nincs szükség tárfiókra. További információ: Azure Arc-kompatibilis fürtök a tárolási szempontokat ismertető cikkben.
- Egy függvényalkalmazás, amely a tároló futtatásának kontextusát biztosítja. A függvényalkalmazás az App Service Kubernetes környezetben fut, és leképezi a helyi függvényprojektet. A függvényalkalmazás lehetővé teszi, hogy logikai egységbe csoportosítsa a függvényeket az erőforrások egyszerűbb felügyelete, telepítése és megosztása érdekében.
Feljegyzés
A függvényalkalmazások dedikált (App Service-) csomagon futó App Service Kubernetes-környezetben futnak. Ha meglévő csomag nélkül hozza létre a függvényalkalmazást, létrejön egy csomag az Ön számára.
Tárfiók létrehozása
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 westeurope --resource-group myResourceGroup --sku Standard_LRS
Feljegyzés
Bizonyos esetekben előfordulhat, hogy nincs szükség tárfiókra. További információ: Azure Arc-kompatibilis fürtök a tárolási szempontokat ismertető cikkben.
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 neveknek csak három-24 karakterből álló számokat és kisbetűket kell tartalmazniuk. Standard_LRS
egy általános célú fiókot határoz meg, amelyet a Functions támogat. Az --location
érték egy standard Azure-régió.
A függvényalkalmazás létrehozása
Futtassa az az functionapp create parancsot egy új függvényalkalmazás létrehozásához a környezetben.
az functionapp create --name <APP_NAME> --custom-location <CUSTOM_LOCATION_ID> --storage-account <STORAGE_NAME> --resource-group AzureFunctionsContainers-rg --image <LOGIN_SERVER>/azurefunctionsimage:v1.0.0 --registry-username <USERNAME> --registry-password <SECURE_PASSWORD>
Ebben a példában cserélje le <CUSTOM_LOCATION_ID>
az App Service Kubernetes-környezethez meghatározott egyéni hely azonosítóját. Cserélje le <STORAGE_NAME>
az előző lépésben <APP_NAME>
használt fiók nevét egy globálisan egyedi névre, <DOCKER_ID>
illetve <LOGIN_SERVER>
a Docker Hub-fiókazonosítóra vagy a Container Registry-kiszolgálóra. 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 szükséges alkalmazásbeállítások megadása
Futtassa az alábbi parancsokat egy alkalmazásbeállítás létrehozásához a tárfiók kapcsolati sztring:
storageConnectionString=$(az storage account show-connection-string --resource-group AzureFunctionsContainers-rg --name <STORAGE_NAME> --query connectionString --output tsv)
az functionapp config appsettings set --name <app_name> --resource-group AzureFunctionsContainers-rg --settings AzureWebJobsStorage=$storageConnectionString
Ezt a kódot a Cloud Shellben vagy a Bashben kell futtatni a helyi számítógépen. Cserélje le <STORAGE_NAME>
a tárfiók nevére és <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, http-kérést küld az URL-címére a böngészőben, vagy egy olyan eszközzel, mint a curl.
Másolja a közzétételi parancs kimenetében látható teljes meghívási URL-címet egy böngészőcímsávra a lekérdezési paraméter ?name=Functions
hozzáfűzésével. A böngészőnek hasonló kimenetet kell megjelenítenie, mint amikor helyileg futtatta a függvényt.
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.
Ha végzett ezzel a függvényalkalmazás-telepítéssel, 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
Ez csak a cikkben létrehozott erőforrásokat távolítja el. A mögöttes Azure Arc-környezet továbbra is érvényben marad.
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: