Wednesday, March 2, 2022

Azure Function - Manage Event Hub

 import os

from azure.schemaregistry import SchemaRegistryClient
from azure.schemaregistry.serializer.avroserializer import AvroSerializer
from azure.identity import ClientSecretCredential

from azure.mgmt.eventhub import EventHubManagementClient
from azure.common.credentials import ServicePrincipalCredentials


FULLY_QUALIFIED_NAMESPACE = xxxxxxxx.servicebus.windows.net"
EVENT_HUB_NAME = "xxxxxxxx"
EVENT_HUB_POLICY_NAME = "xxxxxxxx"
EVENT_HUB_POLICY_PRIMARY_KEY = "xxxxxxxx"
SCHEMA_REGISTRY_GROUP_NAME = "xxxxxxxx"
AZURE_TENANT_ID = "9 xxxxxxxx"
AZURE_CLIENT_ID = "xxxxxxxx"
AZURE_CLIENT_SECRET = "xxxxxxxx"

STORAGE_ACCOUNT_NAME = 'xxxxxxxx'
SUBSCRIPTION_ID = 'xxxxxxxx'
RESOURCE_GROUP_NAME = 'xxxxxxxx'
EVENTHUB_NAMESPACE = 'xxxxxxxx'

token_credential = ClientSecretCredential(tenant_id=AZURE_TENANT_ID,
client_id= AZURE_CLIENT_ID, client_secret=AZURE_CLIENT_SECRET)
eventhub_client = EventHubManagementClient(token_credential,SUBSCRIPTION_ID)

EVENTHUB_NAME = 'xxxxxxxx'

# Create EventHub
print(" Create event hub...")
eventhub = eventhub_client.event_hubs.create_or_update(
RESOURCE_GROUP_NAME,
EVENTHUB_NAMESPACE,
EVENTHUB_NAME,
{
"message_retention_in_days": "1",
"partition_count": "2",
"status": "Active",
"capture_description": {
"enabled": True,
"encoding": "Avro",
"interval_in_seconds": "120",
"size_limit_in_bytes": "10485763",
"destination": {
"name": "EventHubArchive.AzureBlockBlob",
"storage_account_resource_id": "/subscriptions/" + SUBSCRIPTION_ID +
"/resourceGroups/" + RESOURCE_GROUP_NAME + "/providers/Microsoft.Storage/storageAccounts/"
+ STORAGE_ACCOUNT_NAME + "",
"blob_container": "container",
"archive_name_format": "{Namespace}/{EventHub}/{PartitionId}/{Year}
/{Month}/{Day}/{Hour}/{Minute}/{Second}"
}
}
}
)
print("Created EventHub: {}".format(eventhub))

# Create authorization rule
eventhub_rule = eventhub_client.event_hubs.create_or_update_authorization_rule(
resource_group_name=RESOURCE_GROUP_NAME,
namespace_name=EVENTHUB_NAMESPACE,
event_hub_name=EVENTHUB_NAME,
authorization_rule_name="AzureFunctionSendPolicy",
parameters={"rights":["SEND"]}
)

# Get authorization rule
eventhub_rule2 = eventhub_client.event_hubs.get_authorization_rule(
resource_group_name=RESOURCE_GROUP_NAME,
namespace_name=EVENTHUB_NAMESPACE,
event_hub_name=EVENTHUB_NAME,
authorization_rule_name="AzureFunctionSendPolicy"
)
print("get_authorization_rule() for manager for EventHub: {}\n".format(eventhub_rule2))

# List keys
namespace_keys = eventhub_client.event_hubs.list_keys(
resource_group_name=RESOURCE_GROUP_NAME,
namespace_name=EVENTHUB_NAMESPACE,
event_hub_name=EVENTHUB_NAME,
authorization_rule_name="AzureFunctionSendPolicy"
)
print("list_keys() for EventHub: {}\n".format(namespace_keys))
print("namespace_keys.primary_key:",namespace_keys.primary_key)

No comments:

Post a Comment