Oktatóanyag – 2. lépés: Feltöltött képek átméretezésének automatizálása az Event Grid használatával

Ez az oktatóanyag kiterjeszti a Képadatok feltöltése a felhőbe az Azure Storage használatával oktatóanyagot a kiszolgáló nélküli automatikus miniatűr-létrehozás hozzáadásához Azure Event Grid és Azure Functions használatával. A magas szintű munkafolyamat a következő:

Az oktatóanyag során a következő lépéseket hajtja végre:

  • Azure Storage-fiók létrehozása
  • Függvényalkalmazás létrehozása, konfigurálása és üzembe helyezése
  • Esemény-előfizetés létrehozása tárolási eseményekhez
  • A mintaalkalmazás tesztelése

Előfeltételek

Az oktatóanyag elvégzéséhez:

Azure Storage-fiók létrehozása

Az Azure Functions szolgáltatásnak egy általános célú tárfiókra van szüksége. Az előző oktatóanyagban létrehozott Blob Storage-fiókon kívül hozzon létre egy külön általános tárfiókot az erőforráscsoportban. A tárfiókok neve 3–24 karakter hosszúságú lehet, és csak számokból és kisbetűkből állhat.

Állítsa be a változókat úgy, hogy az tartalmazza az előző oktatóanyagban létrehozott erőforráscsoport nevét, a létrehozandó erőforrások helyét és az új tárfiók nevét, amelyet Azure Functions igényel. Ezután hozza létre az Azure-függvény tárfiókját.

Használja az az storage account create parancsot.

Megjegyzés

Használja az alábbi parancsokat a Cloud Shell Bash-rendszerhéjában. Szükség esetén a Cloud Shell bal felső sarkában található drop-drown listát használva váltson Bash-felületre.

Futtassa az alábbi parancsokat egy Azure Storage-fiók létrehozásához.

functionstorage="funcstorage$RANDOM"
az storage account create --name $functionstorage --location $region --resource-group $rgName --sku Standard_LRS --kind StorageV2  --allow-blob-public-access true

Függvényalkalmazás létrehozása

Rendelkeznie kell egy függvényalkalmazással a függvény végrehajtásának biztosításához. A függvényalkalmazás szolgáltat környezetet a függvénykód kiszolgáló nélküli végrehajtásához. A következő parancsban adja meg a saját egyedi függvényalkalmazásnevét. A függvényalkalmazás nevét a rendszer a függvényalkalmazás alapértelmezett DNS-tartományának részeként használja, ezért egyedinek kell lennie az Azure összes alkalmazásában. Adja meg a létrehozandó függvényalkalmazás nevét, majd hozza létre az Azure-függvényt.

Hozzon létre egy függvényalkalmazást az az functionapp create parancs használatával.

functionapp="funcapp$RANDOM"
az functionapp create --name $functionapp --storage-account $functionstorage --resource-group $rgName --consumption-plan-location $region --functions-version 4

Most konfigurálja a függvényalkalmazást úgy, hogy csatlakozzon az előző oktatóanyagban létrehozott Blob Storage-fiókhoz.

A függvényalkalmazás konfigurálása

A függvénynek hitelesítő adatokra van szüksége a Blob Storage-fiókhoz, amelyeket az az functionapp config appsettings set vagy az Update-AzFunctionAppSetting paranccsal adhat hozzá a függvényalkalmazás alkalmazásbeállításaihoz.

storageConnectionString=$(az storage account show-connection-string --resource-group $rgName --name $blobStorageAccount --query connectionString --output tsv)

az functionapp config appsettings set --name $functionapp --resource-group $rgName --settings AzureWebJobsStorage=$storageConnectionString THUMBNAIL_CONTAINER_NAME=thumbnails THUMBNAIL_WIDTH=100 FUNCTIONS_EXTENSION_VERSION=~2 FUNCTIONS_WORKER_RUNTIME=dotnet

A FUNCTIONS_EXTENSION_VERSION=~2 beállítással a függvényalkalmazás az Azure Functions futtatókörnyezet 2.x-es verzióján fut. Most már üzembe helyezhet egy függvénykód-projektet a függvényalkalmazásban.

A függvénykód üzembe helyezése

A C#-átméretezési mintafüggvény elérhető a GitHubon. Helyezze üzembe ezt a kódprojektet a függvényalkalmazásban az az functionapp deployment source config paranccsal.

az functionapp deployment source config --name $functionapp --resource-group $rgName --branch master --manual-integration --repo-url https://github.com/Azure-Samples/function-image-upload-resize

A kép átméretezése függvényt az Event Grid szolgáltatásból küldött HTTP-kérések indítják el. Egy esemény-előfizetés létrehozásával utasítja az Event Gridet, hogy ezeket az értesítéseket a függvénye URL-címére szeretné kapni. Ebben az oktatóanyagban feliratkozik a blob által létrehozott eseményekre.

Az Event Grid-értesítésből a függvénynek átadott adatok között megtalálható a blob URL-címe. Ezt az URL-címet ezután az eseményindító átadja a bemeneti kötésnek a feltöltött kép Blob Storage-ból való lekéréséhez. A függvény létrehoz egy miniatűrt, és a Blob Storage egyik külön tárolójába írja az eredményül kapott streamet.

A projekt az EventGridTrigger típusú eseményindítót használja. Az általános HTTP-eseményindítók helyett az Event Grid eseményindító használata ajánlott. Az Event Grid automatikusan érvényesíti az Event Grid függvény eseményindítóit. Általános HTTP-eseményindítók esetén meg kell valósítani az érvényesítési választ.

A függvénnyel kapcsolatos további tudnivalókért tekintse meg a function.json és run.csx fájlt.

A függvény projektkódját a rendszer közvetlenül a nyilvános mintaadattárból helyezi üzembe. További információk az Azure Functions üzembe helyezési lehetőségeiről: Azure Functions – folyamatos üzembe helyezés.

Esemény-előfizetés létrehozása

Az esemény-előfizetés jelzi, hogy melyik szolgáltató eseményeit kívánja elküldeni egy adott végpontnak. Ebben az esetben a függvény közzéteszi a végpontot. Az alábbi lépésekkel hozzon létre egy esemény-előfizetést, amely értesítéseket küld a függvényének az Azure Portalon:

  1. A Azure Portal lap tetején keresse meg és válassza ki Function App a létrehozott függvényalkalmazást. Válassza a Függvények lehetőséget, és válassza a Thumbnail függvényt.

    A Thumbnail függvény kiválasztása a portálon

  2. Válassza az Integráció lehetőséget, majd az Event Grid-eseményindítót , majd az Event Grid-előfizetés létrehozása lehetőséget.

    Lépjen az Event Grid-előfizetés hozzáadása elemre a Azure Portal

  3. Használja a táblázatban megadott esemény-előfizetési beállításokat.

    Esemény-előfizetés létrehozása a függvényből az Azure Portalon

    Beállítás Ajánlott érték Leírás
    Név imageresizersub Az új esemény-előfizetés azonosítóneve.
    Témakörtípus Tárfiókok Válassza ki a Storage-fiók eseményszolgáltatóját.
    Előfizetés Az Azure-előfizetése Alapértelmezés szerint az aktuális Azure-előfizetés van kiválasztva.
    Erőforráscsoport myResourceGroup Válassza a Meglévő használata elemet, majd válassza ki az oktatóanyagban használt erőforráscsoportot.
    Erőforrás Saját Blob Storage-fiók Válassza ki azt a Blob Storage-fiókot, ahol a rendszerképeket tárolja, és ne az Azure-függvényalkalmazás által használt fiókot.
    Rendszertémakör neve imagestoragesystopic Adja meg a rendszertémakör nevét. A rendszertémakörökről további információt a Rendszertémakörök áttekintése című témakörben talál.
    Eseménytípusok Létrehozott blob Törölje a jelölést az összes típus mellől a Létrehozott blob kivételével. A rendszer csak a Microsoft.Storage.BlobCreated eseménytípusokat adja át a függvénynek.
    Végpont típusa automatikusan létrehozott Előre definiálva Azure-függvényként.
    Végpont automatikusan létrehozott A függvény neve. Ebben az esetben miniatűr.
  4. Váltson a Szűrők lapra, és hajtsa végre a következő műveleteket:

    1. Válassza a Tárgyszűrés engedélyezése lehetőséget.

    2. A Tárgy mezőben adja meg a következő értéket: /blobServices/default/containers/images/.

      Az esemény-előfizetés szűrőjének megadása

  5. Válassza a Létrehozás lehetőséget az esemény-előfizetés hozzáadásához egy olyan esemény-előfizetés létrehozásához, amely aktiválja a Thumbnail függvényt, amikor blobot adnak hozzá a images tárolóhoz. A függvény átméretezi a képeket, és hozzáadja őket a thumbnails tárolóhoz.

Most, hogy konfigurálta a háttérszolgáltatásokat, tesztelni fogja a képátméretezési funkciót a minta-webalkalmazásban.

A mintaalkalmazás tesztelése

A képátméretezés webalkalmazásban való teszteléséhez nyissa meg a közzétett alkalmazás URL-címét. A webalkalmazás alapértelmezett URL-címe https://<web_app>.azurewebsites.net.

Válassza a Fényképek feltöltése lehetőséget egy fájl kiválasztásához és feltöltéséhez. Fényképet is behúzhat a területre.

Figyelje meg, hogy a feltöltött kép eltűnése után a feltöltött kép egy példánya megjelenik a Létrehozott miniatűrök körhintában. A függvény átméretezte a képet, hozzáadta a miniatűrök tárolóhoz, a webes ügyfél pedig letöltötte a képet.

Képernyőkép egy

Következő lépések

További oktatóanyagokat a tartalomjegyzék Oktatóanyagok szakaszában talál.