Rövid útmutató: Események küldése privát tárolóregisztrációs adatbázisból az Event Gridbe
Az Azure Event Grid egy teljes körűen felügyelt esemény-útválasztási szolgáltatás, amely egységes eseményfelhasználást biztosít egy közzétételi-előfizetési modell használatával. Ebben a rövid útmutatóban az Azure CLI használatával létrehoz egy tárolóregisztrációs adatbázist, feliratkozik a beállításjegyzék eseményeire, majd üzembe helyez egy minta webalkalmazást az események fogadásához. Végül aktiválhatja a tárolórendszerképet push
és delete
-eseményeket, és megtekintheti az esemény hasznos adatait a mintaalkalmazásban.
A cikk lépéseinek elvégzése után a tárolóregisztrációs adatbázisból az Event Gridbe küldött események megjelennek a minta webalkalmazásban:
Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
Előfeltételek
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
- A cikkben szereplő Azure CLI-parancsok a Bash-rendszerhéjhoz vannak formázva. Ha más rendszerhéjat használ, például a PowerShellt vagy a parancssort, előfordulhat, hogy ennek megfelelően módosítania kell a sor folytatásának karaktereit vagy a változó hozzárendelési sorokat. Ez a cikk változókkal minimalizálja a parancsszerkesztés szükséges mennyiségét.
Erőforráscsoport létrehozása
Az Azure-erőforráscsoportok olyan logikai tárolók, amelyekben üzembe helyezheti és kezelheti az Azure-erőforrásokat. Az alábbi az group create parancs létrehoz egy myResourceGroup nevű erőforráscsoportot az eastus régióban. Ha más nevet szeretne használni az erőforráscsoporthoz, állítsa másik RESOURCE_GROUP_NAME
értékre.
RESOURCE_GROUP_NAME=myResourceGroup
az group create --name $RESOURCE_GROUP_NAME --location eastus
Container Registry létrehozása
Ezután helyezzen üzembe egy tárolóregisztrációs adatbázist az erőforráscsoportban az alábbi parancsokkal. Az az acr create parancs futtatása előtt állítsa be ACR_NAME
a beállításjegyzék nevét. A névnek egyedinek kell lennie az Azure-ban, és legfeljebb 5–50 alfanumerikus karakter lehet.
ACR_NAME=<acrName>
az acr create --resource-group $RESOURCE_GROUP_NAME --name $ACR_NAME --sku Basic
A beállításjegyzék létrehozása után az Azure CLI a következőhöz hasonló kimenetet ad vissza:
{
"adminUserEnabled": false,
"creationDate": "2018-08-16T20:02:46.569509+00:00",
"id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myregistry",
"location": "eastus",
"loginServer": "myregistry.azurecr.io",
"name": "myregistry",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sku": {
"name": "Basic",
"tier": "Basic"
},
"status": null,
"storageAccount": null,
"tags": {},
"type": "Microsoft.ContainerRegistry/registries"
}
Eseményvégpont létrehozása
Ebben a szakaszban egy GitHub-adattárban található Resource Manager-sablont használ egy előre összeállított minta webalkalmazás üzembe helyezéséhez a szolgáltatás Azure-alkalmazás. Később előfizet a beállításjegyzék Event Grid-eseményeire, és ezt az alkalmazást adja meg végpontként, amelyre az eseményeket elküldi.
A mintaalkalmazás üzembe helyezéséhez állítsa be SITE_NAME
a webalkalmazás egyedi nevét, és hajtsa végre a következő parancsokat. A webhely nevének egyedinek kell lennie az Azure-ban, mert a webalkalmazás teljes tartománynevének (FQDN) részét képezi. Egy későbbi szakaszban egy webböngészőben navigálhat az alkalmazás teljes tartománynevére a beállításjegyzék eseményeinek megtekintéséhez.
SITE_NAME=<your-site-name>
az deployment group create \
--resource-group $RESOURCE_GROUP_NAME \
--template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
--parameters siteName=$SITE_NAME hostingPlanName=$SITE_NAME-plan
Ha az üzembe helyezés sikeres volt (eltarthat néhány percig), nyisson meg egy böngészőt, és keresse meg a webalkalmazást, és győződjön meg arról, hogy fut:
http://<your-site-name>.azurewebsites.net
A mintaalkalmazásnak eseményüzenetek nélkül kell megjelennie:
Az Event Grid-erőforrás-szolgáltató engedélyezése
Ha korábban nem használta az Event Gridet az Azure-előfizetésében, előfordulhat, hogy regisztrálnia kell az Event Grid-erőforrás-szolgáltatót. A szolgáltató regisztrálásához futtassa az alábbi parancsot:
az provider register --namespace Microsoft.EventGrid
Eltarthat egy ideig, amíg a regisztráció befejeződik. Az állapot ellenőrzéséhez futtassa a következő parancsot:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Ha a
registrationState
Registered
értékű, készen áll a folytatásra.
Feliratkozás beállításjegyzék-eseményekre
Az Event Gridben feliratkozhat egy témakörre , amelyből megtudhatja, hogy mely eseményeket szeretné nyomon követni, és hová szeretné elküldeni őket. Az alábbi az eventgrid event-subscription create
parancs feliratkozik a létrehozott tárolóregisztrációs adatbázisra, és megadja a webalkalmazás URL-címét végpontként, amelyre eseményeket kell küldenie. A korábbi szakaszokban kitöltött környezeti változók itt lesznek újra felhasználva, ezért nincs szükség szerkesztésre.
ACR_REGISTRY_ID=$(az acr show --name $ACR_NAME --query id --output tsv)
APP_ENDPOINT=https://$SITE_NAME.azurewebsites.net/api/updates
az eventgrid event-subscription create \
--name event-sub-acr \
--source-resource-id $ACR_REGISTRY_ID \
--endpoint $APP_ENDPOINT
Az előfizetés befejezésekor a következőhöz hasonló kimenetnek kell megjelennie:
{
"destination": {
"endpointBaseUrl": "https://eventgridviewer.azurewebsites.net/api/updates",
"endpointType": "WebHook",
"endpointUrl": null
},
"filter": {
"includedEventTypes": [
"All"
],
"isSubjectCaseSensitive": null,
"subjectBeginsWith": "",
"subjectEndsWith": ""
},
"id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myregistry/providers/Microsoft.EventGrid/eventSubscriptions/event-sub-acr",
"labels": null,
"name": "event-sub-acr",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"topic": "/subscriptions/<Subscription ID>/resourceGroups/myresourcegroup/providers/microsoft.containerregistry/registries/myregistry",
"type": "Microsoft.EventGrid/eventSubscriptions"
}
Beállításjegyzék eseményeinek aktiválása
Most, hogy a mintaalkalmazás működik, és előfizetett a beállításjegyzékre az Event Griddel, készen áll néhány esemény létrehozására. Ebben a szakaszban az ACR Tasks használatával hozhat létre és küldhet le egy tárolórendszerképet a beállításjegyzékbe. Az ACR Tasks az Azure Container Registry egyik funkciója, amely lehetővé teszi a tárolólemezképek felhőbeli összeállítását anélkül, hogy a helyi gépen telepítve kellene lennie a Docker-motornak.
Rendszerkép létrehozása és leküldése
Hajtsa végre a következő Azure CLI-parancsot egy tárolórendszerkép GitHub-adattár tartalmából történő létrehozásához. Az ACR Tasks alapértelmezés szerint automatikusan leküld egy sikeresen létrehozott rendszerképet a beállításjegyzékbe, amely létrehozza az eseményt ImagePushed
.
Feljegyzés
Az alábbi példában használt Dockerfile a Docker Hub nyilvános alapszintű tárolórendszerképétől függ. A nyilvános tartalom használatakor a megbízhatóság javítása érdekében importálja és kezelje a rendszerképet egy privát Azure-tárolóregisztrációs adatbázisban, és frissítse a Dockerfile-t a privátan felügyelt alaprendszerkép használatára. További információ a nyilvános rendszerképek használatával kapcsolatban.
az acr build --registry $ACR_NAME --image myimage:v1 -f Dockerfile https://github.com/Azure-Samples/acr-build-helloworld-node.git#main
A következőhöz hasonló kimenetnek kell megjelennie, miközben az ACR Tasks létrehozza, majd leküldi a rendszerképet. A következő mintakimenet csonkolt a rövidség kedvéért.
Sending build context to ACR...
Queued a build with build ID: aa2
Waiting for build agent...
2018/08/16 22:19:38 Using acb_vol_27a2afa6-27dc-4ae4-9e52-6d6c8b7455b2 as the home volume
2018/08/16 22:19:38 Setting up Docker configuration...
2018/08/16 22:19:39 Successfully set up Docker configuration
2018/08/16 22:19:39 Logging in to registry: myregistry.azurecr.io
2018/08/16 22:19:55 Successfully logged in
Sending build context to Docker daemon 94.72kB
Step 1/5 : FROM node:9-alpine
...
Annak ellenőrzéséhez, hogy a létrehozott rendszerkép szerepel-e a beállításjegyzékben, hajtsa végre a következő parancsot az adattár címkéinek myimage
megtekintéséhez:
az acr repository show-tags --name $ACR_NAME --repository myimage
A létrehozott kép "v1" címkéjének a következőhöz hasonlóan kell megjelennie a kimenetben:
[
"v1"
]
A kép törlése
Most hozzon létre egy eseményt ImageDeleted
úgy, hogy törli a rendszerképet az az acr-adattár törlési parancsával:
az acr repository delete --name $ACR_NAME --image myimage:v1
A következőhöz hasonló kimenetnek kell megjelennie, és megerősítést kér a jegyzékfájl és a kapcsolódó képek törléséhez:
This operation will delete the manifest 'sha256:f15fa9d0a69081ba93eee308b0e475a54fac9c682196721e294b2bc20ab23a1b' and all the following images: 'myimage:v1'.
Are you sure you want to continue? (y/n):
Beállításjegyzék-események megtekintése
Most leküldött egy lemezképet a beállításjegyzékbe, majd törölte. Lépjen az Event Grid Viewer webalkalmazásra, és mind az eseményeket, mind ImageDeleted
ImagePushed
az eseményeket látnia kell. Előfordulhat, hogy egy előfizetés-érvényesítési esemény is létrejön, amely a parancs végrehajtásával jön létre a Feliratkozás a beállításjegyzék eseményei szakaszra.
Az alábbi képernyőképen a mintaalkalmazás látható a három eseményből, és az ImageDeleted
esemény ki van bontva a részletek megjelenítéséhez.
Gratulálunk! Ha látja az eseményeket és ImageDeleted
az ImagePushed
eseményeket, a beállításjegyzék eseményeket küld az Event Gridnek, és az Event Grid továbbítja ezeket az eseményeket a webalkalmazás végpontjára.
Az erőforrások eltávolítása
Ha végzett az ebben a rövid útmutatóban létrehozott erőforrásokkal, az alábbi Azure CLI-paranccsal törölheti őket. Ha töröl egy erőforráscsoportot, az összes benne lévő erőforrás véglegesen törlődik.
FIGYELMEZTETÉS: Ez a művelet visszavonhatatlan. A parancs futtatása előtt győződjön meg arról, hogy már nincs szüksége a csoport erőforrásaira.
az group delete --name $RESOURCE_GROUP_NAME
Event Grid-eseményséma
Az Azure Container Registry eseményüzenetséma-referenciáját az Event Grid dokumentációjában találja:
Azure Event Grid-eseményséma a Container Registryhez
Következő lépések
Ebben a rövid útmutatóban üzembe helyezett egy tárolóregisztrációs adatbázist, létrehozott egy lemezképet az ACR Tasks használatával, törölte, és egy mintaalkalmazással felhasználta a beállításjegyzék eseményeit az Event Gridből. Ezután lépjen tovább az ACR-feladatok oktatóanyagra, ahol többet tudhat meg a tárolólemezképek felhőben történő készítéséről, beleértve az automatikus buildeket az alaprendszerkép frissítésére: