Snabbstart: Skicka händelser från privat containerregister till Event Grid
Azure Event Grid är en fullständigt hanterad tjänst för händelsedirigering som tillhandahåller enhetlig händelseförbrukning med hjälp av en publicera-prenumerera-modell. I den här snabbstarten använder du Azure CLI för att skapa ett containerregister, prenumerera på registerhändelser och sedan distribuera ett exempelwebbprogram för att ta emot händelserna. Slutligen utlöser du push containeravbildning och händelser och visar delete händelsenyttolasten i exempelprogrammet.
När du har slutfört stegen i den här artikeln visas händelser som skickas från ditt containerregister Event Grid visas i exempelwebbappen:

Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.
Förutsättningar
Använd bash-miljön i Azure Cloud Shell.
Om du vill kan du i stället installera Azure CLI för att köra CLI-referenskommandon.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Fler inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas till det installerar du Azure CLI-tillägg vid första användning. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Azure CLI-kommandona i den här artikeln är formaterade för Bash-gränssnittet. Om du använder ett annat gränssnitt som PowerShell eller kommandotolken kan du behöva justera rad fortsättningstecken eller variabeltilldelningsrader därefter. Den här artikeln använder variabler för att minimera mängden kommandoredigering som krävs.
Skapa en resursgrupp
En Azure-resursgrupp är en logisk container där du distribuerar och hanterar dina Azure-resurser. Följande az group create-kommando skapar en resursgrupp med namnet myResourceGroup i regionen eastus. Om du vill använda ett annat namn för resursgruppen anger du RESOURCE_GROUP_NAME till ett annat värde.
RESOURCE_GROUP_NAME=myResourceGroup
az group create --name $RESOURCE_GROUP_NAME --location eastus
Skapa ett containerregister
Distribuera sedan ett containerregister till resursgruppen med följande kommandon. Innan du kör kommandot az acr create anger ACR_NAME du till ett namn för registret. Namnet måste vara unikt i Azure och är begränsat till 5–50 alfanumeriska tecken.
ACR_NAME=<acrName>
az acr create --resource-group $RESOURCE_GROUP_NAME --name $ACR_NAME --sku Basic
När registret har skapats returnerar Azure CLI utdata som liknar följande:
{
"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"
}
Skapa en händelseslutpunkt
I det här avsnittet använder du en Resource Manager som finns i en GitHub-lagringsplats för att distribuera ett förbyggt exempelwebbprogram till Azure App Service. Senare prenumererar du på registrets Event Grid händelser och anger den här appen som slutpunkten som händelserna skickas till.
Om du vill distribuera exempelappen SITE_NAME anger du ett unikt namn för webbappen och kör följande kommandon. Platsnamnet måste vara unikt i Azure eftersom det utgör en del av webbappens fullständigt kvalificerade domännamn (FQDN). I ett senare avsnitt går du till appens FQDN i en webbläsare för att visa registrets händelser.
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
När distributionen har lyckats (det kan ta några minuter) öppnar du en webbläsare och går till webbappen för att kontrollera att den körs:
http://<your-site-name>.azurewebsites.net
Du bör se exempelappen renderad utan att några händelsemeddelanden visas:

Aktivera Event Grid Resource Provider
Om du inte tidigare har använt Event Grid i din Azure-prenumeration kan du behöva registrera Event Grid Resource Provider. Registrera providern genom att köra följande kommando:
az provider register --namespace Microsoft.EventGrid
Det kan ta en stund innan registreringen har slutförts. Du kan kontrollera status genom att köra:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
När registrationState är Registered kan du fortsätta.
Prenumerera på registerhändelser
I Event Grid prenumererar du på ett ämne för att berätta vilka händelser du vill spåra och var de ska skickas. Följande az eventgrid event-subscription create-kommando prenumererar på det containerregister som du skapade och anger webbappens URL som den slutpunkt som den ska skicka händelser till. Miljövariablerna som du fylla i tidigare avsnitt återanvänds här, så inga ändringar krävs.
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
När prenumerationen är klar bör du se utdata som liknar följande:
{
"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"
}
Utlösa registerhändelser
Nu när exempelappen är igång och du prenumererar på ditt register med Event Grid är du redo att generera några händelser. I det här avsnittet använder du ACR-uppgifter för att skapa och push-skicka en containeravbildning till registret. ACR-uppgifter är en funktion i Azure Container Registry som gör att du kan skapa containeravbildningar i molnet, utan att dockermotorn behöver installeras på den lokala datorn.
Skapa och push-push-avbildning
Kör följande Azure CLI-kommando för att skapa en containeravbildning från innehållet i en GitHub lagringsplats. Som standard ACR-uppgifter automatiskt en skapad avbildning till registret, vilket genererar ImagePushed händelsen.
Anteckning
Den Dockerfile som används i följande exempel är beroende av en offentlig bascontaineravbildning från Docker Hub. Du kan förbättra tillförlitligheten när du använder offentligt innehåll genom att importera och hantera avbildningen i ett privat Azure-containerregister och uppdatera din Dockerfile så att den använder din privat hanterade basavbildning. Läs mer om att arbeta med offentliga avbildningar.
az acr build --registry $ACR_NAME --image myimage:v1 -f Dockerfile https://github.com/Azure-Samples/acr-build-helloworld-node.git#main
Du bör se utdata som liknar följande när ACR-uppgifter skapar och sedan push-erar avbildningen. Följande exempel på utdata har trunkerats för korthet.
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
...
Kontrollera att den skapade avbildningen finns i registret genom att köra följande kommando för att visa taggarna på lagringsplatsen "myimage":
az acr repository show-tags --name $ACR_NAME --repository myimage
Taggen "v1" för den avbildning som du skapade bör visas i utdata, ungefär så här:
[
"v1"
]
Ta bort avbildningen
Generera nu en händelse ImageDeleted genom att ta bort avbildningen med kommandot az acr repository delete:
az acr repository delete --name $ACR_NAME --image myimage:v1
Du bör se utdata som liknar följande och be om bekräftelse för att ta bort manifestet och tillhörande avbildningar:
This operation will delete the manifest 'sha256:f15fa9d0a69081ba93eee308b0e475a54fac9c682196721e294b2bc20ab23a1b' and all the following images: 'myimage:v1'.
Are you sure you want to continue? (y/n):
Visa registerhändelser
Nu har du push-push-lagt till en avbildning i registret och sedan tagit bort den. Gå till webbappen Event Grid Viewer så bör du se både ImageDeleted - och ImagePushed -händelser. Du kan också se en händelse för prenumerationsverifiering som genereras genom att köra kommandot i avsnittet Prenumerera på registerhändelser.
Följande skärmbild visar exempelappen med de tre händelserna och händelsen ImageDeleted expanderas för att visa dess information.

Grattis! Om du ser händelserna och skickar ditt register händelser till Event Grid och Event Grid vidarebefordrar dessa händelser till ImagePushed ImageDeleted webbappens slutpunkt.
Rensa resurser
När du är klar med de resurser som du skapade i den här snabbstarten kan du ta bort dem med följande Azure CLI-kommando. När du tar bort en resursgrupp tas alla resurser som den innehåller bort permanent.
VARNING! Den här åtgärden går inte att ångra. Se till att du inte längre behöver någon av resurserna i gruppen innan du kör kommandot.
az group delete --name $RESOURCE_GROUP_NAME
Event Grid-händelseschema
Du hittar schemareferensen Azure Container Registry händelsemeddelanden i Event Grid dokumentationen:
Azure Event Grid händelseschema för Container Registry
Nästa steg
I den här snabbstarten distribuerade du ett containerregister, skapade en avbildning med ACR-uppgifter, tog bort den och har förbrukat registrets händelser från Event Grid med ett exempelprogram. Gå sedan vidare till självstudien ACR-uppgifter för att lära dig mer om att skapa containeravbildningar i molnet, inklusive automatiserade byggen vid uppdatering av basavbildningar:
