Tworzenie przestrzeni nazw w centrum zdarzeń i włączanie przechwytywania przy użyciu szablonu
W tym artykule przedstawiono sposób używania szablonu usługi Azure Resource Manager umożliwiającego utworzenie przestrzeni nazw usługi Event Hubs z jednym wystąpieniem centrum zdarzeń oraz włączenie funkcji przechwytywania w tym centrum zdarzeń. W tym artykule opisano, jak wskazać wdrażane zasoby oraz jak podać parametry realizacji wdrożenia. Można użyć tego szablonu na potrzeby własnych wdrożeń lub dostosować go do konkretnych potrzeb.
W tym artykule pokazano też, jak przechwytywać zdarzenia w obiektach Azure Storage Blob lub w magazynie Azure Data Lake Store zależnie od wybranej lokalizacji docelowej.
Aby uzyskać więcej informacji na temat tworzenia szablonów, zobacz Tworzenie szablonów usługi Azure Resource Manager. Aby zapoznać się z właściwościami i składnią języka JSON, których należy użyć w szablonie, zobacz Typy zasobów Microsoft.EventHub.
Aby uzyskać więcej informacji na temat praktycznych rozwiązań i wzorców dotyczących konwencji nazewnictwa zasobów platformy Azure, zobacz Azure Resources Naming Conventions (Konwencje nazewnictwa zasobów platformy Azure).
W przypadku pełnych szablonów wybierz następujące linki usługi GitHub:
- Tworzenie centrum zdarzeń i włączanie funkcji Przechwytywanie do magazynu szablonu
- Tworzenie centrum zdarzeń i włączanie funkcji Przechwytywanie w szablonie usługi Azure Data Lake Store
Uwaga
Aby sprawdzić najnowsze szablony, odwiedź galerię Szablony szybkiego startu platformy Azure i wyszukaj hasło Event Hubs.
Ważne
Usługa Azure Data Lake Storage Gen1 została wycofana, więc nie używaj jej do przechwytywania danych zdarzeń. Więcej informacji znajdziesz w oficjalnym ogłoszeniu. Jeśli używasz usługi Azure Data Lake Storage Gen1, przeprowadź migrację do usługi Azure Data Lake Storage Gen2. Aby uzyskać więcej informacji, zobacz Wskazówki i wzorce dotyczące migracji usługi Azure Data Lake Storage.
Co chcesz wdrożyć?
Ten szablon umożliwia wdrożenie przestrzeni nazw usługi Event Hubs z centrum zdarzeń oraz włączenie funkcji przechwytywania usługi Event Hubs. Funkcja przechwytywania usługi Event Hubs pozwala automatycznie dostarczać strumień danych usługi Event Hubs do usługi Azure Blob Storage lub Azure Data Lake Store w wyznaczonym okresie lub przy określonym interwale rozmiaru. Wybierz następujący przycisk, aby włączyć funkcję przechwytywania usługi Event Hubs w usłudze Azure Storage:
Wybierz następujący przycisk, aby włączyć funkcję przechwytywania usługi Event Hubs w usłudze Azure Data Lake Store:
Parametry
Przy użyciu usługi Azure Resource Manager można zdefiniować parametry dla wartości, które mają zostać uwzględnione podczas wdrażania szablonu. Szablon zawiera sekcję o nazwie Parameters
obejmującą wszystkie wartości parametrów. Należy zdefiniować parametr dla tych wartości, które różnią się w zależności od wdrażanego projektu lub na podstawie wdrażanego środowiska. Nie należy definiować parametrów dla wartości, które zawsze pozostają takie same. Każda wartość parametru używana w szablonie definiuje wdrażane zasoby.
Szablon zawiera definicje następujących parametrów.
eventHubNamespaceName
Nazwa tworzonej przestrzeni nazw usługi Event Hubs.
"eventHubNamespaceName":{
"type":"string",
"metadata":{
"description":"Name of the EventHub namespace"
}
}
eventHubName
Nazwa centrum zdarzeń utworzonego w przestrzeni nazw usługi Event Hubs.
"eventHubName":{
"type":"string",
"metadata":{
"description":"Name of the event hub"
}
}
messageRetentionInDays
Liczba dni przechowywania komunikatów w centrum zdarzeń.
"messageRetentionInDays":{
"type":"int",
"defaultValue": 1,
"minValue":"1",
"maxValue":"7",
"metadata":{
"description":"How long to retain the data in event hub"
}
}
partitionCount
Liczba partycji w utworzonym centrum zdarzeń.
"partitionCount":{
"type":"int",
"defaultValue":2,
"minValue":2,
"maxValue":32,
"metadata":{
"description":"Number of partitions chosen"
}
}
captureEnabled
Włączanie funkcji przechwytywania w centrum zdarzeń.
"captureEnabled":{
"type":"string",
"defaultValue":"true",
"allowedValues": [
"false",
"true"],
"metadata":{
"description":"Enable or disable the Capture for your event hub"
}
}
captureEncodingFormat
Format kodowania na potrzeby serializowania danych zdarzeń.
"captureEncodingFormat":{
"type":"string",
"defaultValue":"Avro",
"allowedValues":[
"Avro"],
"metadata":{
"description":"The encoding format in which Capture serializes the EventData"
}
}
captureTime
Przedział czasu, w którym funkcja przechwytywania usługi Event Hubs pobiera dane.
"captureTime":{
"type":"int",
"defaultValue":300,
"minValue":60,
"maxValue":900,
"metadata":{
"description":"The time window in seconds for the capture"
}
}
captureSize
Przedział rozmiaru, w którym funkcja przechwytywania pobiera dane.
"captureSize":{
"type":"int",
"defaultValue":314572800,
"minValue":10485760,
"maxValue":524288000,
"metadata":{
"description":"The size window in bytes for capture"
}
}
captureNameFormat
Format nazwy używany przez funkcję przechwytywania usługi Event Hubs podczas zapisywania plików systemu Avro. Format nazwy przechwytywania musi zawierać {Namespace}
pola , , {Month}
{Day}
{EventHub}
{Year}
{Hour}
{PartitionId}
{Minute}
i .{Second}
Te pola można rozmieścić w dowolnej kolejności z ogranicznikami lub bez ograniczników.
"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 delimiters. E.g. Prod_{EventHub}/{Namespace}\\{PartitionId}_{Year}_{Month}/{Day}/{Hour}/{Minute}/{Second}"
}
}
apiVersion
Wersja interfejsu API szablonu.
"apiVersion":{
"type":"string",
"defaultValue":"2017-04-01",
"metadata":{
"description":"ApiVersion used by the template"
}
}
Poniżej przedstawiono parametry, których należy użyć w przypadku wybrania usługi Azure Storage jako lokalizacji docelowej.
destinationStorageAccountResourceId
Przechwytywanie danych na odpowiednim koncie usługi Storage wymaga identyfikatora zasobu konta usługi Azure Storage.
"destinationStorageAccountResourceId":{
"type":"string",
"metadata":{
"description":"Your existing Storage account resource ID where you want the blobs be captured"
}
}
blobContainerName
Kontener obiektów blob, w którym będą przechwytywane dane zdarzeń.
"blobContainerName":{
"type":"string",
"metadata":{
"description":"Your existing storage container in which you want the blobs captured"
}
}
subscriptionId
Identyfikator subskrypcji dla przestrzeni nazw usługi Event Hubs i usługi Azure Data Lake Store. Oba te zasoby muszą korzystać z tego samego identyfikatora subskrypcji.
"subscriptionId": {
"type": "string",
"metadata": {
"description": "Subscription ID of both Azure Data Lake Store and Event Hubs namespace"
}
}
dataLakeAccountName
Nazwa usługi Azure Data Lake Store na potrzeby przechwytywanych zdarzeń.
"dataLakeAccountName": {
"type": "string",
"metadata": {
"description": "Azure Data Lake Store name"
}
}
dataLakeFolderPath
Ścieżka folderu docelowego dla przechwytywanych zdarzeń. Ta ścieżka to folder w usłudze Data Lake Store, do którego zdarzenia są wypychane podczas operacji przechwytywania. Aby uzyskać informacje dotyczące ustawiania uprawnień dla tego folderu, zobacz Use Azure Data Lake Store to capture data from Event Hubs (Przechwytywanie danych z usługi Event Hubs przy użyciu usługi Azure Data Lake Store).
"dataLakeFolderPath": {
"type": "string",
"metadata": {
"description": "Destination capture folder path"
}
}
Usługa Azure Storage lub Azure Data Lake Storage Gen 2 jako miejsce docelowe
Tworzy przestrzeń nazw typu Microsoft.EventHub/Namespaces
, z jednym centrum zdarzeń, a także umożliwia przechwytywanie w usłudze Azure Blob Storage lub 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')]"
}
}
}
}
}
]
}
]
Polecenia umożliwiające uruchomienie wdrożenia
Aby wdrożyć zasoby na platformie Azure, musisz wcześniej zalogować się na swoje konto Azure i korzystać z modułu Azure Resource Manager. Aby dowiedzieć się, jak używać usługi Azure Resource Manager z programem Azure PowerShell lub interfejsem wiersza polecenia platformy Azure, zobacz:
- Zarządzanie zasobami platformy Azure przy użyciu programu Azure PowerShell
- Zarządzanie zasobami platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure.
W następujących przykładach założono, że na swoim koncie masz już grupę zasobów o określonej nazwie.
PowerShell
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Zobacz Instalowanie programu Azure PowerShell, aby rozpocząć. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az PowerShell, zobacz Migracja programu Azure PowerShell z modułu AzureRM do modułu Az.
Wdróż szablon, aby włączyć funkcję przechwytywania usługi Event Hubs w usłudze 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
Wdróż szablon, aby włączyć funkcję przechwytywania usługi Event Hubs w usłudze 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
Interfejs wiersza polecenia platformy Azure
Usługa Azure Blob Storage jako lokalizacja docelowa:
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][]
Usługa Azure Data Lake Store jako lokalizacja docelowa:
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][]
Następne kroki
Funkcję przechwytywania usługi Event Hubs można również skonfigurować za pośrednictwem witryny Azure Portal. Aby uzyskać więcej informacji, zobacz Enable Event Hubs Capture using the Azure portal (Włączanie funkcji przechwytywania usługi Event Hubs przy użyciu witryny Azure Portal).
Następujące linki pozwalają dowiedzieć się więcej na temat usługi Event Hubs: