Vytvoření oboru názvů v centru událostí a povolení funkce Capture pomocí šablony
Tento článek ukazuje, jak použít šablonu Azure Resource Manageru, která vytvoří obor názvů Event Hubs s jednou instancí centra událostí, ve kterém také povolí funkci Capture. Tento článek popisuje, jak definovat, které prostředky se nasadí, a jak definovat parametry zadávané při spuštění nasazení. Tuto šablonu můžete použít pro vlastní nasazení nebo ji upravit, aby splňovala vaše požadavky.
Tento článek také ukazuje, jak určit, že se události mají zachytávat do objektů Azure Storage Blob nebo do služby Azure Data Lake Store v závislosti na zvoleném cíli.
Další informace o vytváření šablon najdete v tématu Tvorba šablon Azure Resource Manageru. Informace o syntaxi a vlastnostech JSON, které se mají použít v šabloně, najdete v tématu Typy prostředků Microsoft.EventHub.
Další informace o vzorech a postupech pro zásady vytváření názvů prostředků Azure najdete v tématu Zásady vytváření názvů prostředků Azure.
Hotové šablony můžete získat kliknutím na následující odkazy na web GitHub:
- Šablona centra událostí a povolení zachytávání pomocí funkce Capture do služby Storage
- Šablona centra událostí a povolení zachytávání pomocí funkce Capture do služby Azure Data Lake Store
Poznámka
Nejnovější šablony můžete zkontrolovat tak, že přejdete do galerie Šablony Azure pro rychlý start a vyhledáte Event Hubs.
Co budete nasazovat?
Pomocí této šablony nasadíte obor názvů Event Hubs s centrem událostí a povolíte funkci Event Hubs Capture. Funkce Event Hubs Capture umožňuje automatické doručování streamovaných dat ve službě Event Hubs do služby Azure Blob Storage nebo Azure Data Lake Store v rámci zvoleného časového nebo velikostního intervalu. Kliknutím na následující tlačítko povolíte zachytávání pomocí funkce Event Hubs Capture do služby Azure Storage:
Kliknutím na následující tlačítko povolíte zachytávání pomocí funkce Event Hubs Capture do služby Azure Data Lake Store:
Parametry
Pomocí Azure Resource Manageru definujete parametry pro hodnoty, které chcete zadat při nasazení šablony. Šablona obsahuje část Parameters, která obsahuje všechny hodnoty parametrů. Parametr byste měli definovat pro hodnoty, které se mění v závislosti na nasazovaném projektu nebo prostředí, do kterého nasazujete. Nedefinujte parametry pro hodnoty, které jsou vždy stejné. Každá hodnota parametru se v šabloně použije k definování nasazovaných prostředků.
Šablona definuje následující parametry.
eventHubNamespaceName
Název oboru názvů Event Hubs, který se má vytvořit.
"eventHubNamespaceName":{
"type":"string",
"metadata":{
"description":"Name of the EventHub namespace"
}
}
eventHubName
Název centra událostí vytvořeného v oboru názvů Event Hubs.
"eventHubName":{
"type":"string",
"metadata":{
"description":"Name of the event hub"
}
}
messageRetentionInDays
Počet dní, po které se zprávy budou uchovávat v centru událostí.
"messageRetentionInDays":{
"type":"int",
"defaultValue": 1,
"minValue":"1",
"maxValue":"7",
"metadata":{
"description":"How long to retain the data in event hub"
}
}
partitionCount
Počet oddílů, které se mají vytvořit v centru událostí.
"partitionCount":{
"type":"int",
"defaultValue":2,
"minValue":2,
"maxValue":32,
"metadata":{
"description":"Number of partitions chosen"
}
}
captureEnabled
Povolení funkce Capture v centru událostí.
"captureEnabled":{
"type":"string",
"defaultValue":"true",
"allowedValues": [
"false",
"true"],
"metadata":{
"description":"Enable or disable the Capture for your event hub"
}
}
captureEncodingFormat
Formát kódování, který zadáte pro serializaci dat událostí.
"captureEncodingFormat":{
"type":"string",
"defaultValue":"Avro",
"allowedValues":[
"Avro"],
"metadata":{
"description":"The encoding format in which Capture serializes the EventData"
}
}
captureTime
Časový interval, ve kterém funkce Event Hubs Capture začne zachytávat data.
"captureTime":{
"type":"int",
"defaultValue":300,
"minValue":60,
"maxValue":900,
"metadata":{
"description":"The time window in seconds for the capture"
}
}
captureSize
Velikostní interval, ve kterém funkce Capture začne zachytávat data.
"captureSize":{
"type":"int",
"defaultValue":314572800,
"minValue":10485760,
"maxValue":524288000,
"metadata":{
"description":"The size window in bytes for capture"
}
}
captureNameFormat
Formát názvu, který má funkce Event Hubs Capture používat k zápisu souborů Avro. Nezapomeňte, že formát názvu pro funkci Capture musí obsahovat pole {Namespace}, {EventHub}, {PartitionId}, {Year}, {Month}, {Day}, {Hour}, {Minute} a {Second}. Tato pole můžete uspořádat v libovolném pořadí s oddělovači nebo bez.
"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
Verze rozhraní API šablony.
"apiVersion":{
"type":"string",
"defaultValue":"2017-04-01",
"metadata":{
"description":"ApiVersion used by the template"
}
}
Pokud jako cíl zvolíte službu Azure Storage, použijte následující parametry.
destinationStorageAccountResourceId
Funkce Capture pro povolení zachytávání do požadovaného účtu Storage vyžaduje ID prostředku účtu Azure Storage.
"destinationStorageAccountResourceId":{
"type":"string",
"metadata":{
"description":"Your existing Storage account resource ID where you want the blobs be captured"
}
}
blobContainerName
Kontejner objektů blob, do kterého se mají zachytávat data událostí.
"blobContainerName":{
"type":"string",
"metadata":{
"description":"Your existing storage container in which you want the blobs captured"
}
}
Pokud jako cíl zvolíte Azure Data Lake Store Gen 1, použijte následující parametry. Je potřeba nastavit oprávnění k cestě Data Lake Store, ve které chcete událost zachytávat. Informace o nastavení oprávnění najdete v tématu Zachytávání dat do Azure Data Lake Storage Gen 1.
subscriptionId
ID předplatného pro obor názvů Event Hubs a službu Azure Data Lake Store. Oba tyto prostředky musí patřit pod stejné ID předplatného.
"subscriptionId": {
"type": "string",
"metadata": {
"description": "Subscription ID of both Azure Data Lake Store and Event Hubs namespace"
}
}
dataLakeAccountName
Název služby Azure Data Lake Store pro zachycené události.
"dataLakeAccountName": {
"type": "string",
"metadata": {
"description": "Azure Data Lake Store name"
}
}
dataLakeFolderPath
Cesta k cílové složce pro zachycené události. Do této složky ve službě Data Lake Store budou při operaci zachycení doručovány události. Pokud chcete nastavit oprávnění k této složce, přečtěte si článek Použití Azure Data Lake Store k zaznamenání dat ze služby Event Hubs.
"dataLakeFolderPath": {
"type": "string",
"metadata": {
"description": "Destination capture folder path"
}
}
Prostředky k nasazení pro službu Azure Storage jako cíl zachycených událostí
Vytvoří se obor názvů typu EventHub s jedním centrem událostí a povolí zachytávání funkcí Capture do služby Azure Blob Storage.
"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')]"
}
}
}
}
}
]
}
]
Prostředky k nasazení pro službu Azure Data Lake Store jako cíl
Vytvoří obor názvů typu EventHub s jedním centrem událostí a povolí funkci Capture ve službě Azure Data Lake Store.
"resources": [
{
"apiVersion": "2017-04-01",
"name": "[parameters('namespaceName')]",
"type": "Microsoft.EventHub/Namespaces",
"location": "[variables('location')]",
"sku": {
"name": "Standard",
"tier": "Standard"
},
"resources": [
{
"apiVersion": "2017-04-01",
"name": "[parameters('eventHubName')]",
"type": "EventHubs",
"dependsOn": [
"[concat('Microsoft.EventHub/namespaces/', parameters('namespaceName'))]"
],
"properties": {
"path": "[parameters('eventHubName')]",
"captureDescription": {
"enabled": "true",
"skipEmptyArchives": false,
"encoding": "[parameters('archiveEncodingFormat')]",
"intervalInSeconds": "[parameters('captureTime')]",
"sizeLimitInBytes": "[parameters('captureSize')]",
"destination": {
"name": "EventHubArchive.AzureDataLake",
"properties": {
"DataLakeSubscriptionId": "[parameters('subscriptionId')]",
"DataLakeAccountName": "[parameters('dataLakeAccountName')]",
"DataLakeFolderPath": "[parameters('dataLakeFolderPath')]",
"ArchiveNameFormat": "[parameters('captureNameFormat')]"
}
}
}
}
}
]
}
]
Poznámka
Pokud během okna Capture nedojde k žádným událostem, můžete povolit nebo zakázat vysílání prázdných souborů pomocí vlastnosti skipEmptyArchives.
Příkazy pro spuštění nasazení
Pokud chcete nasadit prostředky do Azure, musíte být přihlášení k účtu Azure a používat modul Azure Resource Manager. Další informace o použití Azure Resource Manageru s Azure PowerShellem nebo Azure CLI najdete v tématech:
Následující příklady předpokládají, že v účtu již máte skupinu prostředků s daným názvem.
PowerShell
Poznámka
Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Nasazení šablony pro povolení zachytávání pomocí funkce Event Hubs Capture do služby 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
Nasazení šablony pro povolení zachytávání pomocí funkce Event Hubs Capture do služby Azure Data Lake Store:
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 jako cíl:
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][]
Azure Data Lake Store jako cíl:
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][]
Další kroky
Funkci Event Hubs Capture můžete konfigurovat také prostřednictvím webu Azure Portal. Další informace najdete v tématu Povolení funkce Event Hubs Capture pomocí webu Azure Portal.
Další informace o službě Event Hubs najdete na následujících odkazech:
