التشغيل السريع: توجيه أحداث التخزين إلى نقطة نهاية الويب باستخدام PowerShell

Azure Event Grid هي خدمة أحداث للسحابة. في هذه المقالة، يمكنك استخدام Azure PowerShell للاشتراك في أحداث تخزين Blob، وتشغيل حدث، وعرض النتيجة.

بشكل عام، يمكنك إرسال الأحداث إلى نقطة نهاية تعالج بيانات الحدث وتتخذ الإجراءات. ومع ذلك، لتبسيط هذه المقالة، يمكنك إرسال الأحداث إلى تطبيق ويب يقوم بتجميع الرسائل وعرضها.

عند الانتهاء من ذلك، سوف ترى أنه تم إرسال بيانات الحدث إلى تطبيق الويب.

View results

الإعداد

ملاحظة

تستخدم هذه المقالة الوحدة النمطية Azure Az PowerShell، وهي الوحدة النمطية PowerShell الموصى بها للتفاعل مع Azure. لبدء استخدام الوحدة النمطية Az PowerShell، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

تتطلب هذه المقالة تشغيل الإصدار الأخير من Azure PowerShell. إذا كنت بحاجة إلى التثبيت أو الترقية، يمكنك الاطلاع علىتثبيت وتهيئة Azure PowerShell.

تسجيل الدخول إلى Azure

سجل الدخول إلى اشتراكك في Azure باستخدام الأمر Connect-AzAccount واتبع الإرشادات التي تظهر على الشاشة للتوثيق.

Connect-AzAccount

يستخدم هذا المثال westus2 ويخزن التحديد في متغير للاستخدام في جميع المراحل.

$location = "westus2"

قم بإنشاء مجموعة موارد

مواضيع شبكة الأحداث هي موارد Azure، ويجب وضعها في مجموعة موارد Azure. مجموعة الموارد هي عبارة عن مجموعة منطقية يتم فيها توزيع جميع موارد Azure وإدارتها.

قم بإنشاء مجموعة موارد باستخدام أمرNew-AzResourceGroup.

ينشئ المثال التالي مجموعة موارد باسم gridResourceGroup في موقع westus2.

$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location

إنشاء حساب تخزين

تتوفر أحداث تخزين Blob في حسابات تخزين الإصدار 2 للأغراض العامة وحسابات تخزين Blob. الإصدار v2 للأغراض العامة من حسابات التخزين تدعم جميع الميزات لجميع خدمات التخزين، بما في ذلك كائنات Blob والملفات وقوائم الانتظار والجداول. حساب تخزين Blob هو حساب تخزين متخصص لتخزين بياناتك غير المنظمة، مثل الكائنات الثنائية كبيرة الحجم (blob) في Azure Storage. تشبه حسابات تخزين Blob حسابات التخزين ذات الأغراض العامة، وتشارك كل ميزات القدرة على الصمود والتوفر وقابلية التوسع والأداء الرائعة التي تستخدمها اليوم، بما في ذلك اتساق واجهة برمجة التطبيقات بنسبة 100% لمنع الكائنات الثنائية كبيرة الحجم وإرفاقها. لمزيد من المعلومات، راجع نظرة عامة على حساب تخزين Azure.

أنشئ حساب تخزين Blob باستخدام النسخ المتماثل لـ LRS باستخدام New-AzStorageAccount، ثم استرجع سياق حساب التخزين الذي يحدد حساب التخزين المطلوب استخدامه. عند العمل على حساب تخزين، فإنك تشير إلى السياق بدلاً من تقديم بيانات الاعتماد بشكل متكرر. ينشئ هذا المثال حساب تخزين يسمى gridstorage مع مساحة تخزين مكررة محلياً (LRS).

ملاحظة

توجد أسماء حسابات التخزين في مساحة اسم عمومية، لذا تحتاج إلى إلحاق بعض الأحرف العشوائية بالاسم المقدم في هذا البرنامج النصي.

$storageName = "gridstorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
  -Name $storageName `
  -Location $location `
  -SkuName Standard_LRS `
  -Kind BlobStorage `
  -AccessTier Hot

$ctx = $storageAccount.Context

قم بإنشاء نقطة نهاية للرسالة

قبل الاشتراك في الموضوع، دعنا ننشئ نقطة نهاية لرسالة الحدث. عادة ما تتخذ نقطة النهاية إجراءات استنادًا إلى بيانات الحدث. لتبسيط بدء التشغيل السريع هذا، ستنشرتطبيق ويب مدمج مسبقًا يعرض رسائل الحدث. يتضمن الحل المنشور خطة خدمة التطبيقات، وتطبيق الويب الخاص بخدمة التطبيقات، وكود المصدر من GitHub.

استبدل <your-site-name> باسم فريد من أجل تطبيق الويب الخاص بك. يجب أن يكون اسم تطبيق الويب فريدًا لأنه جزء من إدخال 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

قد يستغرق النشر بضع دقائق حتى يكتمل. بعد نجاح عملية النشر، اطلع على تطبيق الويب الخاص بك للتأكد من تشغيله. في مستعرض ويب، انتقل إلى: https://<your-site-name>.azurewebsites.net

ينبغي أن تشاهد الموقع الذي لا توجد به رسائل معروضة حاليًا.

تمكين موفر موارد Event Grid

إذا لم تكن قد استخدمت Event Grid في اشتراك Azure من قبل، فقد تحتاج إلى تسجيل موفر موارد Event Grid. تشغيل الأمر التالي:

Register-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

قد يستغرق التسجيل لحظات حتى ينتهي. للتحقق من الحالة، قم بتشغيل:

Get-AzResourceProvider -ProviderNamespace Microsoft.EventGrid

عندما RegistrationStatusيكونRegistered، كنت على استعداد للمتابعة.

الاشتراك في حساب التخزين

يمكنك الاشتراك في موضوع لإخبار شبكة الأحداث بالأحداث التي تريد تعقبها. يشترك المثال التالي في حساب التخزين الذي أنشأته، ويمرر عنوان URL من تطبيق الويب كنقطة نهاية إعلام بالأحداث. ينبغي أن تتضمن نقطة النهاية لتطبيق الويب الخاص بك اللاحقة /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

اعرض تطبيق الويب الخاص بك مرة أخرى، ولاحظ أنه تم إرسال حدث التحقق من الاشتراك إليه. حدد أيقونة العين لتوسيع بيانات الحدث. ترسل شبكة الأحداث حدث التحقق بحيث يمكن التحقق من نقطة النهاية التي تريد تلقي بيانات الحدث. يتضمن تطبيق الويب تعليمة برمجية للتحقق من صحة الاشتراك.

View subscription event

مشغل حدث من تخزين Blob

الآن، لنقم بتشغيل حدث لمعرفة كيف توزع شبكة الأحداث الرسالة إلى نقطة النهاية لديك. أولاً، دعنا ننشئ حاوية وعنصرًا. ثم، دعنا نقوم بتحميل العنصر في الحاوية.

$containerName = "gridcontainer"
New-AzStorageContainer -Name $containerName -Context $ctx

echo $null >> gridTestFile.txt

Set-AzStorageBlobContent -File gridTestFile.txt -Container $containerName -Context $ctx -Blob gridTestFile.txt

لقد قمت بتشغيل الحدث، وأرسلت شبكة الأحداث الرسالة إلى نقطة النهاية التي قمت بتكوينها عند الاشتراك. عرض تطبيق الويب الخاص بك لمشاهدة الحدث الذي أرسلته للتو.

[{
  "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"
}]

تنظيف الموارد

إذا كنت تخطط لمواصلة العمل مع حساب التخزين هذا واشتراك الحدث، فلا تقم بتنظيف الموارد التي تم إنشاؤها في هذه المقالة. إذا لم تكن تخطط للمتابعة، فاستخدم الأمر التالي لحذف الموارد التي أنشأتها في هذه المقالة.

Remove-AzResourceGroup -Name $resourceGroup

الخطوات التالية

الآن بعد أن عرفت كيفية إنشاء الموضوعات واشتراكات الأحداث، تعرف على المزيد حول أحداث تخزين Blob، وما يمكن أن تساعدك شبكة الأحداث في القيام به: