Dela via


Snabbstart: Dirigera lagringshändelser till webbslutpunkten med PowerShell

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.

Visa resultat

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.

Visa prenumerationshändelse

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: