Szybki start: kierowanie zdarzeń magazynu do internetowego punktu końcowego za pomocą programu PowerShell
Azure Event Grid to usługa obsługi zdarzeń dla chmury. W tym artykule użyjesz programu Azure PowerShell do subskrybowania zdarzeń usługi Blob Storage, wyzwalania zdarzenia i wyświetlania wyniku.
Zazwyczaj użytkownik wysyła zdarzenia do punktu końcowego, w którym następuje przetwarzanie danych zdarzenia i są wykonywane akcje. Jednak aby uprościć ten artykuł, zdarzenia zostaną wysłane do aplikacji internetowej, która zbiera i wyświetla komunikaty.
Po zakończeniu przekonasz się, że dane zdarzenia zostały wysłane do aplikacji internetowej.
Ustawienia
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
W tym artykule jest wymagana najnowsza wersja programu Azure PowerShell. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie i konfigurowanie programu Azure PowerShell.
Logowanie się do platformy Azure
Zaloguj się do subskrypcji platformy Azure za Connect-AzAccount
pomocą polecenia i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby się uwierzytelnić.
Connect-AzAccount
W tym przykładzie użyto metody westus2 i zapisano wybór w zmiennej do użycia w całym.
$location = "westus2"
Tworzenie grupy zasobów
Tematy usługi Event Grid to zasoby platformy Azure i muszą być umieszczone w grupie zasobów platformy Azure. Grupa zasobów to kolekcja logiczna przeznaczona do wdrażania zasobów platformy Azure i zarządzania nimi.
Utwórz grupę zasobów za pomocą polecenia New-AzResourceGroup.
Poniższy przykład obejmuje tworzenie grupy zasobów o nazwie gridResourceGroup w lokalizacji westus2.
$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location
Tworzenie konta magazynu
Zdarzenia usługi Blob Storage są dostępne na kontach magazynu ogólnego przeznaczenia w wersji 2 i kontach usługi Blob Storage. Konta magazynu ogólnego przeznaczenia w wersji 2 obsługują wszystkie funkcje wszystkich usług magazynu, w tym usług Blobs, Files, Queues i Tables. Konto usługi Blob Storage to specjalne konto magazynu służące do przechowywania danych niestrukturalnych w formie obiektów blob w usłudze Azure Storage. Konta usługi Blob Storage przypominają konta magazynu ogólnego przeznaczenia i udostępniają wszystkie używane obecnie funkcje doskonałej trwałości, dostępności, skalowalności i wydajności, łącznie z pełną spójnością interfejsu API na potrzeby blokowych obiektów blob i obiektów blob dołączania. Aby uzyskać więcej informacji, zobacz Omówienie konta magazynu platformy Azure.
Utwórz konto usługi Blob Storage z replikacją LRS przy użyciu polecenia New-AzStorageAccount, a następnie pobierz kontekst konta magazynu, który definiuje konto magazynu do użycia. Wykonując działania względem konta magazynu, możesz odwoływać się do kontekstu, zamiast wielokrotnie podawać poświadczenia. W tym przykładzie jest tworzone konto magazynu o nazwie gridstorage
z magazynem lokalnie nadmiarowym (LRS).
Uwaga
Nazwy kont magazynu znajdują się w globalnej przestrzeni nazw, dlatego należy dołączyć kilka losowych znaków do nazwy podanej w tym skrypicie.
$storageName = "gridstorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
-Name $storageName `
-Location $location `
-SkuName Standard_LRS `
-Kind BlobStorage `
-AccessTier Hot `
-AllowBlobPublicAccess $false
$ctx = $storageAccount.Context
Tworzenie punktu końcowego komunikatów
Przed zasubskrybowaniem tematu utwórzmy punkt końcowy dla komunikatów o zdarzeniach. Zazwyczaj w punkcie końcowym akcje są wykonywane na podstawie danych zdarzenia. Aby uprościć ten przewodnik Szybki start, wdrożysz wstępnie utworzoną aplikację internetową, która wyświetla komunikaty o zdarzeniach. Wdrożone rozwiązanie zawiera plan usługi App Service, aplikację internetową usługi App Service i kod źródłowy z repozytorium GitHub.
Zastąp <your-site-name>
unikatową nazwą aplikacji internetowej. Nazwa aplikacji internetowej musi być unikatowa, ponieważ stanowi część wpisu DNS.
$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
Wdrożenie może potrwać kilka minut. Po pomyślnym wdrożeniu należy wyświetlić aplikację sieci Web i upewnić się, że jest uruchomiona. W przeglądarce sieci Web przejdź do: https://<your-site-name>.azurewebsites.net
Powinna być widoczna witryna internetowa bez żadnych aktualnie wyświetlanych komunikatów.
Włączanie dostawcy zasobów usługi Event Grid
Jeśli usługa Event Grid nie była wcześniej używana w subskrypcji platformy Azure, może być konieczne zarejestrowanie dostawcy zasobów usługi Event Grid. Uruchom następujące polecenie:
Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
Ukończenie rejestracji może chwilę potrwać. Aby sprawdzić stan, uruchom polecenie:
Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid
Gdy właściwość RegistrationStatus
uzyska wartość Registered
, można kontynuować.
Subskrybowanie konta magazynu
Subskrybujesz temat, aby poinformować usługę Event Grid o zdarzeniach, które chcesz śledzić. Poniższy przykład subskrybuje utworzone konto magazynu i przekazuje adres URL z aplikacji internetowej jako punkt końcowy powiadomienia o zdarzeniach. Punkt końcowy dla aplikacji internetowej musi zawierać sufiks /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
Wyświetl aplikację sieci Web ponownie i zwróć uwagę, że zdarzenie sprawdzania poprawności subskrypcji zostało do niej wysłane. Wybierz ikonę oka, aby rozwinąć dane zdarzenia. Usługa Event Grid wysyła zdarzenie weryfikacji, aby w punkcie końcowym mogło nastąpić sprawdzenie, czy dane zdarzenia mają być odbierane. Aplikacja internetowa zawiera kod do sprawdzania poprawności subskrypcji.
Wyzwalanie zdarzenia z usługi Blob Storage
Teraz wyzwólmy zdarzenie, aby zobaczyć, jak usługa Event Grid dystrybuuje komunikat do punktu końcowego. Najpierw utwórzmy kontener i obiekt. Następnie przekażemy obiekt do kontenera.
$containerName = "gridcontainer"
New-AzStorageContainer -Name $containerName -Context $ctx
echo $null >> gridTestFile.txt
Set-AzStorageBlobContent -File gridTestFile.txt -Container $containerName -Context $ctx -Blob gridTestFile.txt
Zdarzenie zostało wyzwolone, a usługa Event Grid wysłała komunikat do punktu końcowego skonfigurowanego podczas subskrybowania. Wyświetl aplikację sieci Web, aby wyświetlić właśnie wysłane zdarzenie.
[{
"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"
}]
Czyszczenie zasobów
Jeśli planujesz kontynuować pracę z tym kontem magazynu i subskrypcją zdarzeń, nie usuwaj zasobów utworzonych w tym artykule. Jeśli nie planujesz kontynuować, użyj następującego polecenia, aby usunąć zasoby utworzone w tym artykule.
Remove-AzResourceGroup -Name $resourceGroup
Następne kroki
Wiesz już, jak tworzyć tematy i subskrypcje zdarzeń. Dowiedz się więcej na temat tego, co mogą Ci ułatwić zdarzenia usługi Blob Storage i usługa Event Grid: