Tárolók és Azure Functions használata

Ez a cikk bemutatja, hogy az Azure Functions támogatja az Azure Container Apps-környezetben futó tárolóalapú függvényalkalmazások használatát. A függvényalkalmazás-tárolók tárolóinak a Container Appsben való üzemeltetésének támogatása jelenleg előzetes verzióban érhető el. További információ: Azure Functionst üzemeltető Azure Container Apps.

Ez a cikk bemutatja, hogy az Azure Functions támogatja a Linux-tárolókban futó függvényalkalmazások használatát.

Válassza ki a tárolóalapú függvényalkalmazás üzemeltetési környezetét a cikk tetején.

Ha közvetlenül be szeretne ugrani, az alábbi cikk bemutatja, hogyan hozhatja létre az első linuxos tárolóban futó függvényt, és hogyan helyezheti üzembe a lemezképet egy tárolóregisztrációs adatbázisból egy támogatott Azure-üzemeltetési szolgáltatásba:

Az első tárolóalapú Azure Functions létrehozása az Azure Container Appsben

Az Azure Container Apps üzembe helyezéséről további információt az Azure Functionst üzemeltető Azure Container Appsben talál.

Tárolóalapú függvényalkalmazások létrehozása

A Functions megkönnyíti a függvényalkalmazások Linux-tárolóként való üzembe helyezését és futtatását, amelyeket Ön hoz létre és tart karban. A Functions olyan nyelvspecifikus alaprendszerképeket tart fenn, amelyeket tárolóalapú függvényalkalmazások létrehozásakor használhat.

Fontos

Saját tárolók létrehozásakor frissítenie kell a tároló alaprendszerképét a legújabb támogatott alaprendszerképre. Az Azure Functions támogatott alaprendszerképei nyelvspecifikusak, és az Azure Functions alaprendszerkép-adattárában találhatók.

A Functions csapata elkötelezett amellett, hogy havi frissítéseket tegyen közzé ezekhez az alaplemezképekhez. A rendszeres frissítések közé tartoznak a legújabb alverziófrissítések és biztonsági javítások mind a Functions-futtatókörnyezethez, mind a nyelvekhez. 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át.

A helyi tárolóalapú függvényalkalmazás parancssorból való létrehozásának és a lemezkép tárolóregisztrációs adatbázisban való közzétételének teljes példáját lásd : Függvényalkalmazás létrehozása helyi tárolóban.

A Dockerfile létrehozása

A függvényeszközök olyan Docker-beállítást biztosítanak, amely létrehoz egy Docker-fájlt a függvénykódprojekttel. Ezzel a fájllal a Dockerrel létrehozhatja a függvényeket egy olyan tárolóban, amely a megfelelő alaprendszerképből (nyelvből és verzióból) származik.

A Dockerfile létrehozásának módja a projekt létrehozásának módjától függ.

  • Amikor Functions-projektet hoz létre az Azure Functions Core Tools használatával, a parancs futtatásakor adja meg a --docker lehetőséget, ahogyan az func init alábbi példában is látható:

    func init --docker
    
  • Dockerfile-t is hozzáadhat egy meglévő projekthez, ha a --docker-only parancsot egy meglévő projektmappában futtatja func init , ahogyan az alábbi példában is látható:

    func init --docker-only
    

A teljes példáért lásd : Függvényalkalmazás létrehozása helyi tárolóban.

Függvényalkalmazás létrehozása tárolóban

A kódprojektben létrehozott Core Tools által létrehozott Docker-fájllal a Dockerrel létrehozhatja a tárolóalapú függvényalkalmazást a helyi számítógépen. Az alábbi docker build parancs létrehoz egy lemezképet a tárolóalapú függvényről a helyi könyvtárban lévő projektből:

docker build --tag <DOCKER_ID>/<IMAGE_NAME>:v1.0.0 .

A tároló létrehozásának módjáról a tároló lemezképének összeállítása és helyi ellenőrzése című témakörben talál példát.

Rendszerkép frissítése a beállításjegyzékben

Ha módosítja a függvénykódprojektet, vagy frissítenie kell a legújabb alaprendszerképre, helyileg kell újraépítenie a tárolót, és újra közzé kell tennie a frissített lemezképet a kiválasztott tárolóregisztrációs adatbázisban. Az alábbi parancs újraépíti a rendszerképet a gyökérmappából egy frissített verziószámmal, és leküldi a beállításjegyzékbe:

az acr build --registry <REGISTRY_NAME> --image <LOGIN_SERVER>/azurefunctionsimage:v1.0.1 .

Cserélje le <REGISTRY_NAME> a Container Registry-példányra és <LOGIN_SERVER> a bejelentkezési kiszolgáló nevére.

Ezen a ponton frissítenie kell az üzembe helyezést az új rendszerkép használatához. Az alábbi példa frissíti a függvényalkalmazást az új rendszerkép használatára:

az functionapp config container set --image <IMAGE_NAME> --registry-password <SECURE_PASSWORD>--registry-username <USER_NAME> --name <APP_NAME> --resource-group <RESOURCE_GROUP>

Ebben a példában <IMAGE_NAME> az új rendszerkép teljes neve a verzióval együtt. A magánregisztrációs adatbázisokhoz felhasználónevet és jelszót kell megadnia. Ezeket a hitelesítő adatokat biztonságosan tárolja.

Érdemes megfontolni a folyamatos üzembe helyezés engedélyezését is.

Azure Portal létrehozása tárolók használatával

Amikor függvényalkalmazást hoz létre az Azure Portalon, beállíthatja, hogy a függvényalkalmazást egy tárolóregisztrációs adatbázisban lévő rendszerképből telepítse. A tárolóalapú függvényalkalmazások tárolóregisztrációs adatbázisban való létrehozásáról további információt a függvényalkalmazás tárolóban való létrehozása című témakörben talál.

Az alábbi lépések létrehoznak és üzembe helyeznek egy meglévő tárolóalapú függvényalkalmazást egy tárolóregisztrációs adatbázisból.

  1. Az Azure Portal menüjében vagy a Kezdőlapon válassza az Erőforrás létrehozása elemet.

  2. Az Új lapon válassza a Számítási>függvényalkalmazás lehetőséget.

  3. Az Alapok lapon használja a függvényalkalmazás beállításait az alábbi táblázatban megadott módon:

    Beállítás Ajánlott érték Leírás
    Előfizetés Az Ön előfizetése Az előfizetés, amelyben a függvényalkalmazást létrehozza.
    Erőforráscsoport myResourceGroup Annak az új erőforráscsoportnak a neve, amelyben a függvényalkalmazást létrehozza. Létre kell hoznia egy erőforráscsoportot, mert a meglévő erőforráscsoportban lévő új függvényalkalmazások létrehozásakor ismert korlátozások vannak érvényben.
    Függvényalkalmazás neve Egyedi név* Az új függvényalkalmazást azonosító név. Az érvényes karakterek az a-z (kis- és nagybetűk megkülönböztetése nélkül) 0-9és az -.
    Kódot vagy tárolórendszerképet szeretne üzembe helyezni? Tárolólemezkép Tárolóalapú függvényalkalmazás üzembe helyezése egy beállításjegyzékből. Ha függvényalkalmazást szeretne létrehozni a beállításjegyzékben, olvassa el a Függvényalkalmazás létrehozása helyi tárolóban című témakört.
    Régió Előnyben részesített régió Válasszon ki egy önhöz közeli régiót vagy a függvényei által elérhető egyéb szolgáltatásokat.

*Az alkalmazás nevének globálisan egyedinek kell lennie az Összes Azure Functions által üzemeltetett alkalmazás között.

  1. Az Üzemeltetési lehetőségek és csomagok területen válassza a Functions Premium lehetőséget.

    Screenshot of the Basics tab in the Azure portal when creating a function app for hosting a container in a Functions Premium plan.

    Ez létrehoz egy, az Azure Functions által üzemeltetett függvényalkalmazást a Prémium csomagban, amely támogatja a dinamikus skálázást. App Service-csomagban is futtathat, de ebben a dedikált csomagban kezelnie kell a függvényalkalmazás skálázását.

*Az alkalmazás nevének egyedinek kell lennie az Azure Container Apps-környezetben. Az előzetes verzió nem minden régiót támogat. További információ: A Container Apps üzemeltetésével kapcsolatos szempontok.

  1. Az Üzemeltetési beállítások és csomagok területen válassza az Azure Container Apps Environment-csomagot.

    Portal create Basics tab for a containerized function app hosted in Azure Container Apps.

    Ez létrehoz egy új Azure Container Apps Environment-erőforrást a függvényalkalmazás tárolójának üzemeltetéséhez. További információ: Azure Functionst üzemeltető Azure Container Apps.

    Alapértelmezés szerint a környezet zónaredundancia nélküli használati tervben jön létre a költségek minimalizálása érdekében. Választhat egy meglévő Container Apps-környezetet is. A környezetekkel kapcsolatos további információkért tekintse meg az Azure Container Apps-környezeteket.

  1. Fogadja el az új tárfiók létrehozásának alapértelmezett beállításait a Tár lapon, valamint egy új Application Insight-példányt a Figyelés lapon. Meglévő tárfiókot vagy alkalmazáspéldányt is használhat Elemzések.
  1. Válassza az Üzembe helyezés lapot, és törölje a jelölést a Gyorsútmutató-rendszerkép használata jelölőnégyzetből. Ha ezt nem teszi meg, a függvényalkalmazás a függvényalkalmazás nyelvének alaprendszerképéből lesz üzembe helyezve.

  2. Válassza ki a nyilvános vagy privát képtípust. Válassza a Privát lehetőséget, ha az Azure Container Registryt vagy más privát regisztrációs adatbázist használja. Adja meg a rendszerkép nevét, beleértve a beállításjegyzék előtagot is. Ha magánregisztrációs adatbázist használ, adja meg a rendszerkép-beállításjegyzék hitelesítési hitelesítő adatait.

  3. Válassza a Véleményezés + létrehozás lehetőséget az alkalmazáskonfigurációk kiválasztásának áttekintéséhez.

  4. A Véleményezés + létrehozás lapon tekintse át a beállításokat, majd válassza a Létrehozás lehetőséget a függvényalkalmazás kiépítéséhez és a tárolólemezkép beállításjegyzékből való üzembe helyezéséhez.

  1. Válassza a Véleményezés + létrehozás lehetőséget az alkalmazáskonfigurációk kiválasztásának áttekintéséhez.

  2. A Véleményezés + létrehozás lapon tekintse át a beállításokat, majd válassza a Létrehozás lehetőséget a függvényalkalmazás alapértelmezett alaprendszerkép használatával történő kiépítéséhez.

  3. A függvényalkalmazás-erőforrás létrehozása után válassza az Ugrás az erőforrásra lehetőséget, majd a függvényalkalmazás lapján válassza az Üzembe helyezési központ lehetőséget.

  4. Az Üzembe helyezési központban csatlakoztathatja a tárolóregisztrációs adatbázist a rendszerkép forrásaként. A GitHub Actionst vagy az Azure Pipelinest is engedélyezheti a tároló frissítéseinek robusztusabb, folyamatos üzembe helyezéséhez a beállításjegyzékben.

Képek használata az Azure Functionsben

Amikor a függvényalkalmazás tárolója egy beállításjegyzékből van üzembe helyezve, a Functions megőrzi a forráslemezkép adatait. Az alábbi parancsokkal adatokat kérhet le a rendszerképről, vagy módosíthatja a használt központi telepítési lemezképet:

Container Apps számítási feladatok profiljai

A számítási feladatok profiljai a Container Apps funkciói, amelyekkel jobban szabályozhatja az üzembehelyezési erőforrásokat. Az Azure Functions az Azure Container Appsben a számítási feladatok profiljait is támogatja. További információ: Számítási feladatok profiljai az Azure Container Appsben.

Számítási feladatprofilokat az Azure CLI-vel vagy az Azure Portalon hozhat létre és kezelhet.

A tárolóalkalmazás-környezet létrehozásakor engedélyezheti a számítási feladatok profiljait. Példa: Tárolóalkalmazás létrehozása profilban.

Profilokat adhat hozzá, szerkeszthet és törölhet a környezetében. Példa: Profilok hozzáadása.

Amikor olyan környezetben hoz létre tárolóalapú függvényalkalmazást, amelyben engedélyezve vannak a számítási feladatok profiljai, meg kell adnia azt a profilt is, amelyben futtatni szeretné. Ezt a --workload-profile-name parancs paraméterével teheti meg, például ebben a az functionapp create példában:

az functionapp create --name <APP_NAME> --storage-account <STORAGE_NAME> --environment MyContainerappEnvironment --resource-group AzureFunctionsContainers-rg --functions-version 4 --runtime <LANGUAGE_STACK> --image <IMAGE_URI>  --workload-profile-name  PROFILE_NAME> --cpu <CPU_COUNT> --memory <MEMORY_SIZE> 

A parancsban a az functionapp create--environment paraméter a Container Apps környezetet adja meg, a --image paraméter pedig a függvényalkalmazáshoz használni kívánt rendszerképet. 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 Ön számára megfelelő globálisan egyedi nevet is.

Cserélje le <CPU_COUNT> a kívánt virtuális CPU-kat is, legalább 0,5-ös értékre a profil által megengedett maximális értékig. Ehhez <MEMORY_SIZE>válasszon egy dedikált memóriamennyiséget 1 GB-tól a profil által megengedett maximális értékig.

Alkalmazásbeállítások

Az Azure Functions lehetővé teszi a tárolóalapú függvényalkalmazások alkalmazásbeállításainak szabványos módon történő alkalmazását. További információ: Alkalmazásbeállítások használata.

Folyamatos üzembe helyezés engedélyezése az Azure-ban

Fontos

A Webhook-alapú üzembe helyezés jelenleg nem támogatott, ha rugalmas prémium csomagban futtatja a tárolót. Ha az ebben a szakaszban ismertetett folyamatos üzembe helyezési módszert kell használnia, helyezze üzembe a tárolót egy App Service-csomagban. Rugalmas prémium csomagban való futtatáskor manuálisan kell újraindítania az alkalmazást, amikor frissítéseket tesz a tárolón az adattárban.

Engedélyezheti, hogy az Azure Functions automatikusan frissítse a rendszerkép üzembe helyezését, amikor frissíti a lemezképet a beállításjegyzékben.

  1. A folyamatos üzembe helyezés engedélyezéséhez és a webhook URL-címének lekéréséhez használja a következő parancsot:

    az functionapp deployment container config --enable-cd --query CI_CD_URL --output tsv --name <APP_NAME> --resource-group AzureFunctionsContainers-rg
    

    A az functionapp deployment container config parancs lehetővé teszi a folyamatos üzembe helyezést, és visszaadja az üzembehelyezési webhook URL-címét. Ezt az URL-címet később is lekérheti a az functionapp deployment container show-cd-url parancs használatával.

    A korábbiakhoz hasonlóan cserélje le <APP_NAME> a függvényalkalmazás nevét.

  2. Másolja az üzembehelyezési webhook URL-címét a vágólapra.

  3. Nyissa meg a Docker Hubot, jelentkezzen be, és válassza az Adattárak lehetőséget a navigációs sávon. Keresse meg és jelölje ki a képet, válassza a Webhookok lapot, adjon meg egy webhooknevet, illessze be az URL-címet a Webhook URL-címbe, majd válassza a Létrehozás lehetőséget.

    Screenshot showing how to add the webhook in your Docker Hub window.

  4. A webhookkészlettel az Azure Functions újra üzembe helyezi a rendszerképet, amikor frissíti a Docker Hubban.

SSH-kapcsolatok engedélyezése

Az SSH lehetővé teszi a tároló és az ügyfél közötti biztonságos kommunikációt. Ha engedélyezve van az SSH, az App Service Advanced Tools (Kudu) használatával csatlakozhat a tárolóhoz. Az Azure Functions egy olyan alaprendszerképet biztosít, amely már engedélyezve van az SSH használatával a tárolóhoz való egyszerű kapcsolódáshoz. Csak szerkesztenie kell a Dockerfile-t, majd újra kell építenie és újra kell üzembe helyeznie a képet. Ezután a Speciális eszközök (Kudu) segítségével csatlakozhat a tárolóhoz.

  1. A Dockerfile-ban fűzze hozzá a sztringet -appservice az alaprendszerképhez az FROM utasításban, ahogyan az alábbi példában is látható:

    FROM mcr.microsoft.com/azure-functions/node:4-node18-appservice
    

    Ez a példa a Node.js 18-es verziójú alaprendszerkép SSH-kompatibilis verzióját használja. Az Azure Functions alaprendszerkép-adattárában ellenőrizheti, hogy az SSH-kompatibilis alaprendszerkép legújabb verzióját használja-e.

  2. A parancs használatával újraépítheti a docker build rendszerképet, cserélje le a <DOCKER_ID> Docker Hub-fiók azonosítójára, ahogyan az alábbi példában is látható.

    docker build --tag <DOCKER_ID>/azurefunctionsimage:v1.0.0 .
    
  3. A frissített rendszerkép leküldése a Docker Hubra, amelynek lényegesen kevesebb időt kell igénybe vennie, mint az első leküldés. Most csak a kép frissített szegmenseit kell feltölteni.

    docker push <DOCKER_ID>/azurefunctionsimage:v1.0.0
    
  4. Az Azure Functions automatikusan újra üzembe helyezi a rendszerképet a függvényalkalmazásban; a folyamat kevesebb mint egy perc alatt lezajlott.

  5. Egy böngészőben nyissa meg https://<app_name>.scm.azurewebsites.net/ és cserélje le <app_name> az egyedi nevét. Ez az URL-cím a függvényalkalmazás-tároló Speciális eszközök (Kudu) végpontja.

  6. Jelentkezzen be az Azure-fiókjába, majd válassza ki az SSH-t a tárolóval való kapcsolat létrehozásához. Csatlakozás az Azure még mindig frissíti a tárolórendszerképet.

  7. Miután létrejött a kapcsolat a tárolóval, futtassa a top parancsot az aktuálisan futó folyamatok megtekintéséhez.

    Screenshot that shows Linux top command running in an SSH session.

Következő lépések

Az alábbi cikkek további információt nyújtanak a tárolók üzembe helyezéséről és kezeléséről: