Megosztás a következőn keresztül:


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. További információért lásd: Azure Functions-t üzemeltető Azure Container Apps.

Fontos

Az Azure Functions közvetlen Azure Container Appsben való futtatására szolgáló új üzemeltetési módszer már elérhető (lásd a közleményt), és a legtöbb új számítási feladathoz ajánlott. Ez az integráció lehetővé teszi az Azure Container Apps teljes funkcióinak és képességeinek kihasználását, miközben kihasználja a függvények programozási modelljét és az Azure Functions által biztosított automatikus skálázás egyszerűségét.

További információ: Natív Azure Functions-támogatás az Azure Container Appsben

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:

Fontos

Ez a cikk jelenleg bemutatja, hogyan csatlakozhat az alapértelmezett tárfiókhoz egy kapcsolati sztring használatával. A legjobb biztonság érdekében ehelyett egy felügyelt identitásalapú kapcsolatot kell létrehoznia az Azure Storage-hoz Microsoft Entra-hitelesítéssel. További információkért tekintse meg a Functions fejlesztői útmutatóját.

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 a tároló alaprendszerképét frissítenie kell 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 közzétesz ezekhez az alapké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. További információkért lásd: Egyéni tárolók karbantartása.

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
    
  • Meglévő projekthez Dockerfile-t is hozzáadhat, ha a --docker-only opciót használja, amikor a func init parancsot egy meglévő projektmappában futtatja, 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.

Hozza létre a függvényalkalmazását egy tárolóban

Ha a kódprojektben egy Functions által létrehozott Dockerfile van, a Docker használatával létrehozhatja a tárolóalapú függvényalkalmazást a helyi számítógépen. Az alábbi docker build parancs lemezképfájlt készít a helyi könyvtárban található projekt konténerizált függvényeirő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 a <REGISTRY_NAME> címkét a Container Registry példányával, és a <LOGIN_SERVER> címkét a bejelentkezési kiszolgáló nevével.

Ezen a ponton frissítenie kell egy meglévő üzembe helyezést az új rendszerkép használatához. A függvényalkalmazást frissítheti az új rendszerkép használatára az Azure CLI-vel vagy az Azure Portalon:

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 képfájl 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 a függvényalkalmazás tárolóban való létrehozása című témakörben olvashat.

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 oldalon válassza a Számítás>Függvényalkalmazás lehetőséget.

  3. A Válasszon egy üzemeltetési lehetőséget, válassza a Prémium csomag>Kiválasztás.

    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. Ön is választhatja, hogy egy App Service-csomagban futtatja az alkalmazást, de ebben a dedikált csomagban kezelnie kell a függvényalkalmazás skálázását.

  4. 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? Konténerkép Tárolóba helyezett függvényalkalmazás üzembe helyezése egy regisztrárbó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.
    Linux-terv Új csomag (alapértelmezett) Létrehoz egy új Prémium csomagot az alkalmazás üzemeltetéséhez. Választhat egy meglévő prémium csomagot is.
    Tarifacsomag Elastic Prémium EP1 EP1 a legkedvezőbb csomag. Igény szerint nagyobb csomagot is választhat.
    Zóna redundancia Letiltva Nincs szüksége erre a funkcióra egy nem gyártási alkalmazásban.

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

  5. 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. Dönthet úgy is, hogy egy meglévő tárfiókot vagy Application Insights-példányt használ.

  6. 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.

  7. 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.

  8. 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.

  9. 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.

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

Amikor létrehoz egy Container Apps által üzemeltetett függvényalkalmazást az Azure Portalon, dönthet úgy, hogy a függvényalkalmazást egy tárolóregisztrációs adatbázisban lévő rendszerképből telepíti. A tárolóalapú függvényalkalmazások tárolóregisztrációs adatbázisban való létrehozásáról a függvényalkalmazás tárolóban való létrehozása című témakörben olvashat.

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 oldalon válassza a Számítás>Függvényalkalmazás lehetőséget.

  3. A Tárhely opció kiválasztása alatt válassza a Tárolóalkalmazások környezete lehetőséget, majd kattintson a > gombra.

  4. 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 -.
    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 egyedinek kell lennie az Azure Container Apps-környezetben.

  5. Továbbra is az Alapok lapon fogadja el az Azure Container Apps-környezet javasolt új környezetét. A költségek minimalizálása érdekében az új alapértelmezett környezet a Használat + Dedikált-ban jön létre, alapértelmezett számítási feladatprofillal és zónaredundancia nélkül. További információért lásd: Azure Functions-t üzemeltető Azure Container Apps.

    Egy meglévő Container Apps-környezetet is használhat. Egyéni környezet létrehozásához válassza az Új létrehozása lehetőséget. A Container Apps-környezet létrehozása lapon hozzáadhat nem megbízható számítási feladatprofilokat, vagy engedélyezheti a zónaredundanciát. A környezetekkel kapcsolatos további információkért tekintse meg az Azure Container Apps-környezeteket.

  6. Válassza az Üzembe helyezés lapot, és törölje a jelölést a gyorsindítási kép használata jelölőnégyzetből. Ellenkező esetben a függvényalkalmazás a függvényalkalmazás nyelvének alaprendszerképéből lesz üzembe helyezve.

  7. 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 regisztrációs előtagot is. Ha privát regisztrációs adattárat használ, adja meg a képadattár hitelesítő adatait. A nyilvános beállítás csak a Docker Hubban nyilvánosan tárolt képeket támogatja.

  8. A Tárolóerőforrás-kiosztás területen válassza ki a kívánt processzormagok számát és a rendelkezésre álló memóriát. Ha a környezethez más számításiprofilok is hozzáadva vannak, választhat egy nem megfelelő számítási feladatprofilt. Az ezen a lapon szereplő lehetőségek hatással vannak az alkalmazás üzemeltetésének költségeire. Tekintse meg a Container Apps díjszabási oldalát a lehetséges költségek becsléséhez.

  9. 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.

  10. 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.

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.

Az alkalmazáshoz lefoglalt processzor- és memóriaerőforrások mennyiségét is beállíthatja.

A számítási feladatprofilokat és az erőforrás-foglalásokat az Azure CLI-vel vagy az Azure Portalon is létrehozhatja és kezelheti.

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é. A profilt a --workload-profile-name parancs az functionapp create paraméterével adhatja meg, ahogyan ez a következő példában látható:

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 a <STORAGE_NAME>-t arra a névre, amit az előző szakaszban használt a tárfiókhoz. Cserélje le <APP_NAME> az Ön számára megfelelő globálisan egyedi nevet is.

Az alkalmazáshoz lefoglalt erőforrások beállításához cserélje le <CPU_COUNT> a kívánt virtuális CPU-k számát, 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.

A az functionapp container set parancs segítségével kezelheti a lefoglalt erőforrásokat és az alkalmazás által használt számítási feladatprofilt.

az functionapp container set --name <APP_NAME> --resource-group AzureFunctionsContainers-rg --workload-profile-name  <PROFILE_NAME> --cpu <CPU_COUNT> --memory <MEMORY_SIZE> 

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.

Tipp

Alapértelmezés szerint egy tárolóalapú függvényalkalmazás figyeli a 80-at a bejövő kérések esetében. Ha az alkalmazásnak másik portot kell használnia, az WEBSITES_PORT alkalmazásbeállítással módosítsa ezt az alapértelmezett portot.

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

Ha a tárolóalapú függvényalkalmazást az Azure Container Appsben üzemelteti, kétféleképpen állíthatja be a folyamatos üzembe helyezést egy forráskódtárból:

Jelenleg nem tudja folyamatosan üzembe helyezni a tárolókat a tárolóregisztrációs adatbázisban lévő rendszerképváltozások alapján. Ehelyett ezeket a forráskódalapú folyamatos üzembehelyezési folyamatokat kell használnia.

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 Premium Planban futó alkalmazásnál manuálisan kell újraindítania az alkalmazást, valahányszor frissítéseket végez a konténeren az adattárban.

A folyamatos üzembe helyezést egy forráskódtárból is konfigurálhatja az Azure Pipelines vagy a GitHub Actions használatával.

Engedélyezheti az Azure Functions számára, hogy automatikusan frissítse a rendszerkép üzembe helyezését, amikor a tárolóregisztrációban frissíti a képet.

  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.

    Képernyőkép arról, hogyan vehet fel webhookot a Docker Hub ablakba.

  4. Webhook beállításával az Azure Functions újratelepíti a rendszerképet, valahányszor frissíti azt 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 alaprendszerképet biztosít, amely már SSH engedélyezéssel rendelkezik a tárolóhoz való egyszerű kapcsolódás érdekében. 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 karakterláncot -appservice a bázisképhez az FROM utasításban, ahogyan a következő példában 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ával, 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 újratelepíti a rendszerképet a függvényalkalmazásába; a folyamat kevesebb mint egy perc alatt lezajlik.

  5. Egy böngészőben nyissa meg https://<app_name>.scm.azurewebsites.net/ és cserélje le a <app_name>-et a saját egyéni nevére. 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. A csatlakozás eltarthat néhány percig, ha az Azure még 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.

    Képernyőkép egy SSH-munkamenetben futó Linux felső parancsról.

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: