Udostępnij za pośrednictwem


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.

Wyświetlanie wyników

Konfiguracja

Uwaga

Zalecamy korzystanie z modułu Azure Az programu PowerShell do interakcji z platformą Azure. 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.

Zaloguj się na platformie 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 westus2 i zapisano wybór w zmiennej do użycia w całym procesie.

$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

Utwórz konto przechowywania

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 usługi Azure Storage.

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. Pracując z kontem przechowywania, odwołujesz się do kontekstu zamiast wielokrotnie podawać dane uwierzytelniające. 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 dodać kilka losowych znaków do nazwy podanej w tym skrypcie.

$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 komunikatu

Przed zasubskrybowaniem tematu utwórzmy punkt końcowy dla komunikatów o zdarzeniach. Zazwyczaj punkt końcowy wykonuje akcje na podstawie danych zdarzenia. Aby uprościć ten szybki start, wdrożysz z góry przygotowaną 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

Powinieneś zobaczyć witrynę internetową bez żadnych komunikatów wyświetlanych obecnie.

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:

Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

Gdy właściwość RegistrationStatus uzyska wartość Registered, można kontynuować.

Subskrybuj konto magazynowe

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 wyświetlić dane zdarzenia. Usługa Event Grid wysyła zdarzenie weryfikacji, aby punkt końcowy mógł sprawdzić, czy chce odbierać dane zdarzenia. Aplikacja internetowa zawiera kod umożliwiający zweryfikowanie subskrypcji.

Wyświetl zdarzenie 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

Wywołałeś zdarzenie, a usługa Event Grid wysłała wiadomość do punktu końcowego, który skonfigurowałeś podczas subskrybowania. Sprawdź swoją aplikację internetową, aby zobaczyć zdarzenie, które przed chwilą wysłałeś.

[{
  "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 magazynowania 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

Teraz, gdy wiesz, jak tworzyć tematy i subskrypcje zdarzeń, dowiedz się więcej o zdarzeniach Blob Storage i możliwościach, jakie oferuje Event Grid.