Membuat ruang nama dengan hub peristiwa dan mengaktifkan Capture menggunakan templat
Artikel ini memperlihatkan cara menggunakan templat Azure Resource Manager yang membuat ruang nama Azure Event Hubs, dengan satu instans hub peristiwa, dan juga mengaktifkan fitur Capture di hub peristiwa. Artikel ini menjelaskan cara menentukan sumber daya mana yang disebarkan dan cara menentukan parameter yang ditentukan saat penyebaran dijalankan. Anda dapat menggunakan templat ini untuk penyebaran Anda sendiri, atau mengkustomisasikannya untuk memenuhi kebutuhan Anda.
Artikel ini juga memperlihatkan cara menentukan bahwa peristiwa ditangkap ke dalam Azure Storage Blob atau Azure Data Lake Storage, berdasarkan tujuan yang Anda pilih.
Untuk informasi selengkapnya tentang membuat templat, lihat Penulisan templat Azure Resource Manager. Agar sintaks dan properti JSON digunakan dalam templat, lihat Jenis sumber daya Microsoft.EventHub.
Untuk informasi selengkapnya tentang pola dan praktik untuk konvensi penamaan Azure Resources, lihat Konvensi penamaan Azure Resources.
Untuk template lengkap, klik tautan GitHub berikut ini:
- Membuat hub peristiwa dan mengaktifkan templat Capture to Storage
- Membuat pusat aktivitas dan mengaktifkan Capture ke templat Azure Data Lake Store
Catatan
Untuk memeriksa templat terbaru, kunjungi galeri Templat Mulai Cepat Azure dan cari Azure Event Hubs.
Penting
Azure Data Lake Storage Gen1 dihentikan, jadi jangan gunakan untuk mengambil data peristiwa. Untuk informasi selengkapnya, lihat pengumuman resmi. Jika Anda menggunakan Azure Data Lake Storage Gen1, migrasikan ke Azure Data Lake Storage Gen2. Untuk informasi selengkapnya, lihat Panduan dan pola migrasi Azure Data Lake Storage.
Apa yang akan Anda sebarkan?
Dengan templat ini, Anda menyebarkan ruang nama Azure Event Hubs dengan hub peristiwa, dan juga mengaktifkan Capture Azure Event Hubs. Capture Azure Event Hubs memungkinkan Anda mengirimkan data streaming secara otomatis di Azure Event Hubs ke penyimpanan Blob Azure atau Azure Data Lake Store, dalam interval waktu atau ukuran tertentu yang Anda pilih. Klik tombol berikut untuk mengaktifkan Capture Event Hubs ke Azure Storage:
Klik tombol berikut untuk mengaktifkan Capture Event Hubs ke Azure Data Lake Store:
Parameter
Dengan Azure Resource Manager, Anda menentukan parameter untuk nilai yang ingin Anda tentukan saat templat disebarkan. Templat menyertakan bagian yang disebut Parameters
berisi semua nilai parameter. Anda harus menentukan parameter untuk nilai-nilai yang bervariasi tersebut berdasarkan proyek yang Anda terapkan atau berdasarkan lingkungan tempat Anda menyebarkan. Jangan mendefinisikan parameter untuk nilai yang selalu tetap sama. Setiap nilai parameter digunakan dalam templat untuk menentukan sumber daya yang disebarkan.
Templat berisi parameter berikut.
eventHubNamespaceName
Nama untuk ruang nama Azure Event Hubs yang akan dibuat.
"eventHubNamespaceName":{
"type":"string",
"metadata":{
"description":"Name of the EventHub namespace"
}
}
eventHubName
Nama hub peristiwa yang dibuat di ruang nama Azure Event Hubs.
"eventHubName":{
"type":"string",
"metadata":{
"description":"Name of the event hub"
}
}
messageRetentionInDays
Jumlah hari untuk menyimpan pesan di hub peristiwa.
"messageRetentionInDays":{
"type":"int",
"defaultValue": 1,
"minValue":"1",
"maxValue":"7",
"metadata":{
"description":"How long to retain the data in event hub"
}
}
partitionCount
Jumlah partisi untuk dibuat di hub peristiwa.
"partitionCount":{
"type":"int",
"defaultValue":2,
"minValue":2,
"maxValue":32,
"metadata":{
"description":"Number of partitions chosen"
}
}
captureEnabled
Aktifkan Capture di hub peristiwa.
"captureEnabled":{
"type":"string",
"defaultValue":"true",
"allowedValues": [
"false",
"true"],
"metadata":{
"description":"Enable or disable the Capture for your event hub"
}
}
captureEncodingFormat
Format pengodean yang Anda tentukan untuk membuat serialisasi data peristiwa.
"captureEncodingFormat":{
"type":"string",
"defaultValue":"Avro",
"allowedValues":[
"Avro"],
"metadata":{
"description":"The encoding format in which Capture serializes the EventData"
}
}
captureTime
Interval waktu di mana Capture Azure Event Hubs mulai menangkap data.
"captureTime":{
"type":"int",
"defaultValue":300,
"minValue":60,
"maxValue":900,
"metadata":{
"description":"The time window in seconds for the capture"
}
}
captureSize
Interval ukuran di mana Capture Azure Event Hubs mulai menangkap data.
"captureSize":{
"type":"int",
"defaultValue":314572800,
"minValue":10485760,
"maxValue":524288000,
"metadata":{
"description":"The size window in bytes for capture"
}
}
captureNameFormat
Format nama yang digunakan oleh Capture Azure Event Hubs untuk menulis file Avro. Format nama pengambilan harus berisi {Namespace}
bidang , , {PartitionId}
{EventHub}
, {Year}
, {Month}
{Day}
, {Hour}
, {Minute}
, , dan {Second}
. Bidang-bidang ini dapat diatur dalam urutan apa pun, dengan atau tanpa pemisah.
"captureNameFormat": {
"type": "string",
"defaultValue": "{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}",
"metadata": {
"description": "A Capture Name Format must contain {Namespace}, {EventHub}, {PartitionId}, {Year}, {Month}, {Day}, {Hour}, {Minute} and {Second} fields. These can be arranged in any order with or without delimeters. E.g. Prod_{EventHub}/{Namespace}\\{PartitionId}_{Year}_{Month}/{Day}/{Hour}/{Minute}/{Second}"
}
}
apiVersion
Versi API dari templat.
"apiVersion":{
"type":"string",
"defaultValue":"2017-04-01",
"metadata":{
"description":"ApiVersion used by the template"
}
}
Gunakan parameter berikut jika Anda memilih Azure Storage sebagai tujuan Anda.
destinationStorageAccountResourceId
Capture memerlukan ID sumber daya akun Azure Storage untuk mengaktifkan penangkapan ke akun Azure Storage yang Anda inginkan.
"destinationStorageAccountResourceId":{
"type":"string",
"metadata":{
"description":"Your existing Storage account resource ID where you want the blobs be captured"
}
}
blobContainerName
Kontainer blob untuk mengambil data peristiwa Anda.
"blobContainerName":{
"type":"string",
"metadata":{
"description":"Your existing storage container in which you want the blobs captured"
}
}
subscriptionId
ID langganan untuk ruang nama Azure Event Hubs dan Azure Data Lake Store. Kedua sumber daya ini harus berada di bawah ID langganan yang sama.
"subscriptionId": {
"type": "string",
"metadata": {
"description": "Subscription ID of both Azure Data Lake Store and Event Hubs namespace"
}
}
dataLakeAccountName
Nama Azure Data Lake Store untuk peristiwa yang diambil.
"dataLakeAccountName": {
"type": "string",
"metadata": {
"description": "Azure Data Lake Store name"
}
}
dataLakeFolderPath
Jalur folder tujuan untuk peristiwa yang ditangkap. Jalur ini adalah folder di Data Lake Store Tempat peristiwa didorong selama operasi penangkapan. Untuk mengatur izin pada folder ini, lihat Menggunakan Azure Data Lake Store untuk mengambil data dari Azure Event Hubs.
"dataLakeFolderPath": {
"type": "string",
"metadata": {
"description": "Destination capture folder path"
}
}
Azure Storage atau Azure Data Lake Storage Gen 2 sebagai tujuan
Membuat namespace jenis Microsoft.EventHub/Namespaces
, dengan satu hub peristiwa, dan juga mengaktifkan Capture ke Azure Blob Storage atau Azure Data Lake Storage Gen2.
"resources":[
{
"apiVersion":"[variables('ehVersion')]",
"name":"[parameters('eventHubNamespaceName')]",
"type":"Microsoft.EventHub/Namespaces",
"location":"[variables('location')]",
"sku":{
"name":"Standard",
"tier":"Standard"
},
"resources": [
{
"apiVersion": "2017-04-01",
"name": "[parameters('eventHubNamespaceName')]",
"type": "Microsoft.EventHub/Namespaces",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard"
},
"properties": {
"isAutoInflateEnabled": "true",
"maximumThroughputUnits": "7"
},
"resources": [
{
"apiVersion": "2017-04-01",
"name": "[parameters('eventHubName')]",
"type": "EventHubs",
"dependsOn": [
"[concat('Microsoft.EventHub/namespaces/', parameters('eventHubNamespaceName'))]"
],
"properties": {
"messageRetentionInDays": "[parameters('messageRetentionInDays')]",
"partitionCount": "[parameters('partitionCount')]",
"captureDescription": {
"enabled": "true",
"skipEmptyArchives": false,
"encoding": "[parameters('captureEncodingFormat')]",
"intervalInSeconds": "[parameters('captureTime')]",
"sizeLimitInBytes": "[parameters('captureSize')]",
"destination": {
"name": "EventHubArchive.AzureBlockBlob",
"properties": {
"storageAccountResourceId": "[parameters('destinationStorageAccountResourceId')]",
"blobContainer": "[parameters('blobContainerName')]",
"archiveNameFormat": "[parameters('captureNameFormat')]"
}
}
}
}
}
]
}
]
Perintah untuk menjalankan penyebaran
Untuk menyebarkan sumber daya ke Azure, Anda harus masuk ke akun Azure dan menggunakan modul Azure Resource Manager. Untuk mempelajari tentang menggunakan Azure Resource Manager dengan Azure PowerShell atau Azure CLI, lihat:
- Kelola sumber daya Azure dengan menggunakan Azure PowerShell
- Kelola sumber daya Azure menggunakan Azure CLI.
Contoh berikut mengasumsikan Anda sudah memiliki grup sumber daya di akun Anda dengan nama yang ditentukan.
PowerShell
Catatan
Sebaiknya Anda menggunakan modul Azure Az PowerShell untuk berinteraksi dengan Azure. Lihat Menginstal Azure PowerShell untuk memulai. Untuk mempelajari cara bermigrasi ke modul Az PowerShell, lihat Memigrasikan Azure PowerShell dari AzureRM ke Az.
Sebarkan templat Anda untuk mengaktifkan Capture Pusat Aktivitas ke Azure Storage:
New-AzResourceGroupDeployment -ResourceGroupName \<resource-group-name\> -TemplateFile https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.eventhub/eventhubs-create-namespace-and-enable-capture/azuredeploy.json
Sebarkan templat Anda untuk mengaktifkan Capture Azure Event Hubs ke Azure Data Lake Storage:
New-AzResourceGroupDeployment -ResourceGroupName \<resource-group-name\> -TemplateFile https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/quickstarts/microsoft.eventhub/eventhubs-create-namespace-and-enable-capture-for-adls/azuredeploy.json
Azure CLI
Azure Blob Storage sebagai tujuan:
az deployment group create \<my-resource-group\> \<my-deployment-name\> --template-uri [https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.eventhub/eventhubs-create-namespace-and-enable-capture/azuredeploy.json][]
Penyimpanan Azure Data Lake Storage sebagai tujuan:
az deployment group create \<my-resource-group\> \<my-deployment-name\> --template-uri [https://raw.githubusercontent.com/azure/azure-quickstart-templates/master/quickstarts/microsoft.eventhub/eventhubs-create-namespace-and-enable-capture-for-adls/azuredeploy.json][]
Langkah berikutnya
Anda juga dapat mengonfigurasi Penangkapan Azure Event Hubs melalui portal Microsoft Azure. Untuk informasi selengkapnya, lihat Mengaktifkan Penangkap Azure Event Hubs menggunakan portal Microsoft Azure.
Anda dapat mempelajari selengkapnya tentang Azure Event Hubs dengan mengunjungi tautan berikut: