Olay hub’ı ile bir ad alanı oluşturma ve şablon kullanarak Yakalamayı etkinleştirm
Bu makalede, bir olay hub’ı örneği ile Event Hubs ad alanı oluşturan ve olay hub’ında Yakalama özelliğini etkinleştiren Azure Resource Manager şablonunun nasıl kullanılacağı gösterilmektedir. Makalede, hangi kaynakların dağıtıldığının ve dağıtım yürütülürken belirtilen parametrelerin nasıl tanımlanacağı açıklanmaktadır. Bu şablonu kendi dağıtımlarınız için kullanabilir veya kendi gereksinimlerinize göre özelleştirebilirsiniz.
Bu makalede ayrıca seçtiğiniz hedefe göre olayları Azure Storage Bloblarında veya bir Azure Data Lake Store’da yakalamayı belirteceğiniz gösterilmektedir.
Şablon oluşturma hakkında daha fazla bilgi için bkz. Azure Resource Manager şablonları yazma. Şablonda kullanılacak JSON söz dizimi ve özellikleri için bkz . Microsoft.EventHub kaynak türleri.
Azure Kaynakları adlandırma kurallarına ilişkin uygulama ve yapılar için bkz. Azure Kaynakları Adlandırma Kuralları.
Şablonların tamamı için aşağıdaki GitHub bağlantılarını seçin:
- Olay hub'ı oluşturma ve Depolamaya Yakalama şablonunu etkinleştirme
- Olay hub'ı oluşturma ve Azure Data Lake Store'a Yakalama şablonunu etkinleştirme
Not
En yeni şablonları denetlemek için Azure Hızlı Başlangıç Şablonları galerisini ziyaret edin ve Event Hubs araması yapın.
Önemli
Azure Data Lake Storage 1. Nesil kullanımdan kaldırıldığından olay verilerini yakalamak için kullanmayın. Daha fazla bilgi için resmi duyuruya bakın. Azure Data Lake Storage 1. Nesil kullanıyorsanız Azure Data Lake Storage 2. Nesil'a geçin. Daha fazla bilgi için bkz . Azure Data Lake Storage geçiş yönergeleri ve desenleri.
Ne dağıtacaksınız?
Bu şablonu kullanarak bir olay hub’ı ile Event Hubs ad alanı dağıtır ve aynı zamanda Event Hubs Yakalama özelliğini etkinleştirirsiniz. Event Hubs Yakalama özelliği, tercih ettiğiniz bir süre veya boyut aralığı içinde Event Hubs’dan Azure Blob depolama alanına veya Azure Data Lake Store’a akış verilerini otomatik olarak iletmenizi sağlar. Event Hubs Capture'ı Azure Depolama'da etkinleştirmek için aşağıdaki düğmeyi seçin:
Event Hubs Capture'ı Azure Data Lake Store'da etkinleştirmek için aşağıdaki düğmeyi seçin:
Parametreler
Azure Resource Manager sayesinde, şablon dağıtıldığında belirtmek istediğiniz değerlerin parametrelerini siz tanımlarsınız. Şablon, tüm parametre değerlerini içeren Parameters
adlı bir bölüm içerir. Bu değerler için, dağıttığınız projeye veya dağıttığınız ortama göre değişen bir parametre tanımlamanız gerekir. Her zaman aynı kalan değerler için parametre tanımlamayın. Her parametre değeri, dağıtılan kaynakları tanımlamak için şablonda kullanılır.
Şablon aşağıdaki parametreleri tanımlar.
eventHubNamespaceName
Oluşturulacak Event Hubs ad alanının adı.
"eventHubNamespaceName":{
"type":"string",
"metadata":{
"description":"Name of the EventHub namespace"
}
}
eventHubName
Event Hubs ad alanında oluşturulan olay hub’ının adı.
"eventHubName":{
"type":"string",
"metadata":{
"description":"Name of the event hub"
}
}
messageRetentionInDays
İletilerin olay hub'ında tutulacağı gün sayısı.
"messageRetentionInDays":{
"type":"int",
"defaultValue": 1,
"minValue":"1",
"maxValue":"7",
"metadata":{
"description":"How long to retain the data in event hub"
}
}
partitionCount
Olay hub'ında oluşturulacak bölüm sayısı.
"partitionCount":{
"type":"int",
"defaultValue":2,
"minValue":2,
"maxValue":32,
"metadata":{
"description":"Number of partitions chosen"
}
}
captureEnabled
Olay hub’ında Yakalama özelliğini etkinleştirir.
"captureEnabled":{
"type":"string",
"defaultValue":"true",
"allowedValues": [
"false",
"true"],
"metadata":{
"description":"Enable or disable the Capture for your event hub"
}
}
captureEncodingFormat
Olay verilerini seri hale getirmek için belirttiğiniz kodlama biçimi.
"captureEncodingFormat":{
"type":"string",
"defaultValue":"Avro",
"allowedValues":[
"Avro"],
"metadata":{
"description":"The encoding format in which Capture serializes the EventData"
}
}
captureTime
Event Hubs Yakalama özelliğinin veri yakalamaya başladığı zaman aralığı.
"captureTime":{
"type":"int",
"defaultValue":300,
"minValue":60,
"maxValue":900,
"metadata":{
"description":"The time window in seconds for the capture"
}
}
captureSize
Yakalama özelliğinin veri yakalamaya başladığı boyut aralığı.
"captureSize":{
"type":"int",
"defaultValue":314572800,
"minValue":10485760,
"maxValue":524288000,
"metadata":{
"description":"The size window in bytes for capture"
}
}
captureNameFormat
Event Hubs Yakalama özelliği tarafından Avro dosyalarını yazmak için kullanılan ad biçimi. Yakalama adı biçimi , , , , , , {Month}
, {Day}
, {Hour}
, {Minute}
ve {Second}
alanlarını içermelidir{Namespace}
. {Year}
{PartitionId}
{EventHub}
Bu alanlar sınırlayıcılarla veya sınırlayıcılar olmadan herhangi bir sırada düzenlenebilir.
"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
Şablonun API sürümü.
"apiVersion":{
"type":"string",
"defaultValue":"2017-04-01",
"metadata":{
"description":"ApiVersion used by the template"
}
}
Hedef olarak Azure Depolama’yı seçerseniz aşağıdaki parametreleri kullanın.
destinationStorageAccountResourceId
Yakalama özelliğinin istediğiniz Depolama hesabında yakalamayı etkinleştirmesi için bir Azure Depolama hesabı kaynak kimliği gereklidir.
"destinationStorageAccountResourceId":{
"type":"string",
"metadata":{
"description":"Your existing Storage account resource ID where you want the blobs be captured"
}
}
blobContainerName
Olay verilerinin yakalanacağı blob kapsayıcısı.
"blobContainerName":{
"type":"string",
"metadata":{
"description":"Your existing storage container in which you want the blobs captured"
}
}
subscriptionId
Azure Data Lake Store ve Event Hubs ad alanı için abonelik kimliği. Bu iki kaynağın aynı abonelik kimliği altında olması gerekir
"subscriptionId": {
"type": "string",
"metadata": {
"description": "Subscription ID of both Azure Data Lake Store and Event Hubs namespace"
}
}
dataLakeAccountName
Yakalanan olaylar için Azure Data Lake Store adı.
"dataLakeAccountName": {
"type": "string",
"metadata": {
"description": "Azure Data Lake Store name"
}
}
dataLakeFolderPath
Yakalanan olaylar için hedef klasör yolu. Bu yol, Data Lake Store'unuzda yakalama işlemi sırasında olayların gönderildiği klasördür. Bu klasörün izinlerini ayarlamak için bkz. Event Hubs verilerini almak için Azure Data Lake Store kullanma.
"dataLakeFolderPath": {
"type": "string",
"metadata": {
"description": "Destination capture folder path"
}
}
Hedef olarak Azure Depolama veya Azure Data Lake Storage 2. Nesil
Bir olay hub'ı ile türünde Microsoft.EventHub/Namespaces
bir ad alanı oluşturur ve Yakalama'nın Azure Blob Depolama veya Azure Data Lake Storage 2. Nesil sağlar.
"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')]"
}
}
}
}
}
]
}
]
Dağıtımı çalıştırma komutları
Kaynakları Azure’da dağıtmak için, Azure hesabınızda oturum açmış olmanız ve Azure Resource Manager modülünü kullanıyor olmanız gerekir. Azure Resource Manager’ı Azure PowerShell veya Azure CLI ile kullanmayı öğrenmek için bkz:
- Azure PowerShell kullanarak Azure kaynaklarını yönetme
- Azure CLI kullanarak Azure kaynaklarını yönetme.
Aşağıdaki örnekler, hesabınızda belirtilen adlara sahip bir kaynak grubunun olduğunu varsaymaktadır.
PowerShell
Not
Azure ile etkileşim kurmak için Azure Az PowerShell modülünü kullanmanızı öneririz. Başlamak için bkz . Azure PowerShell'i yükleme. Az PowerShell modülüne nasıl geçeceğinizi öğrenmek için bkz. Azure PowerShell’i AzureRM’den Az’ye geçirme.
Azure Depolamada Event Hubs Yakalama özelliğini etkinleştirmek için şablonunuzu dağıtın:
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
Azure Data Lake Store’da Event Hubs Yakalama özelliğini etkinleştirmek için şablonunuzu dağıtın:
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
Hedef olarak Azure Blob Depolama:
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][]
Hedef olarak Azure Data Lake Store:
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][]
Sonraki adımlar
Event Hubs Yakalama özelliğini Azure portalı üzerinden de yapılandırabilirsiniz. Daha fazla bilgi için bkz. Azure portalını kullanarak Event Hubs Yakalama özelliğini etkinleştirme.
Aşağıdaki bağlantıları inceleyerek Event Hubs hakkında daha fazla bilgi edinebilirsiniz: