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:

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:

Sebarkan ke Azure

Klik tombol berikut untuk mengaktifkan Capture Event Hubs ke Azure Data Lake Store:

Sebarkan ke Azure

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:

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: