Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Azure Event Grid är en händelsetjänst för molnet. I den här artikeln använder du Azure PowerShell för att prenumerera på Blob Storage-händelser, utlösa en händelse och visa resultatet.
Normalt kan du skicka händelser till en slutpunkt som bearbetar informationen om händelsen och utför åtgärder. Men för att förenkla denna artikel kan du skicka händelser till en webbapp som samlar in och visar meddelanden.
När du är klar kan du se att händelsedata har skickats till webbappen.
              
              
            
Inställningar
Anmärkning
Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i Migrera Azure PowerShell från AzureRM till Az.
Den här artikeln kräver att du kör den senaste versionen av Azure PowerShell. Om du behöver installera eller uppgradera kan du läsa Installera och konfigurera Azure PowerShell.
Logga in på Azure
Logga in på din Azure-prenumeration med Connect-AzAccount kommandot och följ anvisningarna på skärmen för att autentisera.
Connect-AzAccount
Det här exemplet använder westus2 och lagrar markeringen i en variabel för användning i hela.
$location = "westus2"
Skapa en resursgrupp
Event Grid-ämnen är Azure-resurser och måste placeras i en Azure-resursgrupp. Resursgruppen är en logisk samling där Azure-resurser distribueras och hanteras.
Skapa en resursgrupp med kommandot New-AzResourceGroup.
I följande exempel skapas en resursgrupp med namnet gridResourceGroup på platsen westus2.
$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location
Skapa ett lagringskonto
Blob storage-händelser är tillgängliga i allmänna lagringskonton av typen v2 och Blob storage-konton. General Purpose v2-lagringskonton stöder alla funktionerna för alla lagringstjänster, som blobbar, filer, köer och tabeller. Ett Blob Storage-konto är ett specialiserat lagringskonto för lagring av ostrukturerade data som blobbar (objekt) i Azure Storage. Blob Storage-konton liknar allmänna lagringskonton och har samma höga hållbarhet, tillgänglighet, skalbarhet och prestanda som du använder idag, inklusive 100 % API-konsekvens för blockblobbar och tilläggsblobbar. Mer information finns i kontoöversikten för Azure Storage.
Skapa ett Blob Storage-konto med LRS-replikering med New-AzStorageAccount och hämta sedan kontexten för lagringskontot som definierar vilket lagringskonto som ska användas. När du agerar på ett lagringskonto refererar du till kontexten i stället för att upprepade gånger ange autentiseringsuppgifterna. I det här exemplet skapas ett lagringskonto med namnet gridstorage med lokalt redundant lagring (LRS).
Anmärkning
Lagringskontonamn finns i ett globalt namnutrymme, så du måste lägga till några slumpmässiga tecken i det namn som anges i det här skriptet.
$storageName = "gridstorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
  -Name $storageName `
  -Location $location `
  -SkuName Standard_LRS `
  -Kind BlobStorage `
  -AccessTier Hot `
  -AllowBlobPublicAccess $false  
$ctx = $storageAccount.Context
Skapa en slutpunkt för meddelanden
Innan vi prenumererar på ämnet, låt oss skapa slutpunkten för händelsemeddelandet. Slutpunkten vidtar vanligtvis åtgärder baserat på händelsedata. För att förenkla den här snabbstarten distribuerar du en fördefinierad webbapp som visar händelsemeddelandena. Den distribuerade lösningen innehåller en App Service-plan, en App Service-webbapp och källkod från GitHub.
Ersätt <your-site-name> med ett unikt namn för din webbapp. Webbappnamnet måste vara unikt eftersom det är en del av DNS-posten.
$sitename="<your-site-name>"
New-AzResourceGroupDeployment `
  -ResourceGroupName $resourceGroup `
  -TemplateUri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" `
  -siteName $sitename `
  -hostingPlanName viewerhost
Det kan ta några minuter att slutföra distributionen. Efter att distributionen har slutförts, kontrollera din webbapp för att säkerställa att den körs. I en webbläsare navigerar du till: https://<your-site-name>.azurewebsites.net
Du bör se webbplatsen utan några meddelanden som för närvarande visas.
Aktivera Event Grid-resursleverantör
Om du inte har använt Event Grid förut i din Azure-prenumeration kan du behöva registrera Event Grid-resursprovidern. Kör följande kommando:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
Det kan ta en stund att slutföra registreringen. Du kan kontrollera status genom att köra:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
När RegistrationStatus är Registered kan du fortsätta.
Prenumerera på ditt lagringskonto
Du prenumererar på ett ämne för att berätta för Event Grid vilka händelser du vill spåra. I följande exempel prenumererar du på lagringskontot som du skapade och skickar URL:en från webbappen som slutpunkt för händelsemeddelande. Slutpunkten för ditt webbprogram måste innehålla suffixet /api/updates/.
$storageId = (Get-AzStorageAccount -ResourceGroupName $resourceGroup -AccountName $storageName).Id
$endpoint="https://$sitename.azurewebsites.net/api/updates"
New-AzEventGridSubscription `
  -EventSubscriptionName gridBlobQuickStart `
  -Endpoint $endpoint `
  -ResourceId $storageId
Visa webbappen igen och observera att en prenumerationsverifieringshändelse har skickats till den. Välj ögonikonen för att utöka informationen om händelsen. Event Grid skickar verifieringshändelsen så att slutpunkten kan verifiera att den vill ta emot händelsedata. Webbappen innehåller kod för att verifiera prenumerationen.
              
              
            
Utlösa en händelse från Blob Storage
Nu ska vi utlösa en händelse och se hur Event Grid distribuerar meddelandet till slutpunkten. Först ska vi skapa en container och ett objekt. Sedan laddar vi upp objektet till containern.
$containerName = "gridcontainer"
New-AzStorageContainer -Name $containerName -Context $ctx
echo $null >> gridTestFile.txt
Set-AzStorageBlobContent -File gridTestFile.txt -Container $containerName -Context $ctx -Blob gridTestFile.txt
Du har utlöst händelsen och Event Grid skickade meddelandet till den slutpunkt som du konfigurerade när du prenumererade. Titta på webbappen för att se händelsen som du just har skickat.
[{
  "topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myrg/providers/Microsoft.Storage/storageAccounts/myblobstorageaccount",
  "subject": "/blobServices/default/containers/gridcontainer/blobs/gridTestFile.txt",
  "eventType": "Microsoft.Storage.BlobCreated",
  "eventTime": "2017-08-16T20:33:51.0595757Z",
  "id": "4d96b1d4-0001-00b3-58ce-16568c064fab",
  "data": {
    "api": "PutBlockList",
    "clientRequestId": "Azure-Storage-PowerShell-d65ca2e2-a168-4155-b7a4-2c925c18902f",
    "requestId": "4d96b1d4-0001-00b3-58ce-16568c000000",
    "eTag": "0x8D4E4E61AE038AD",
    "contentType": "application/octet-stream",
    "contentLength": 0,
    "blobType": "BlockBlob",
    "url": "https://myblobstorageaccount.blob.core.windows.net/gridcontainer/gridTestFile.txt",
    "sequencer": "00000000000000EB0000000000046199",
    "storageDiagnostics": {
      "batchId": "dffea416-b46e-4613-ac19-0371c0c5e352"
    }
  },
  "dataVersion": "",
  "metadataVersion": "1"
}]
Rensa resurser
Om du planerar att fortsätta arbeta med det här lagringskontot och händelseprenumerationen ska du inte rensa resurserna som skapas i den här artikeln. Om du inte planerar att fortsätta använder du följande kommando för att ta bort de resurser som du skapade i den här artikeln.
Remove-AzResourceGroup -Name $resourceGroup
Nästa steg
Nu när du vet hur du skapar ämnen och prenumerationer på händelser kan du läsa mer om Blob Storage-händelser och vad Event Grid kan hjälpa dig med: