1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#!/usr/bin/env python
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
"""
Example to show managing rule entities under a ServiceBus Subscription, including
- Create a rule
- Get rule properties.
- Update a rule
- Delete a rule
- List rules under the given ServiceBus Namespace
"""
# pylint: disable=C0111
import os
import asyncio
from azure.servicebus.aio.management import ServiceBusAdministrationClient
CONNECTION_STR = os.environ['SERVICE_BUS_CONNECTION_STR']
TOPIC_NAME = "sb_mgmt_demo_topic"
SUBSCRIPTION_NAME = "sb_mgmt_demo_subscription"
RULE_NAME = "sb_mgmt_demo_rule"
async def create_rule(servicebus_mgmt_client):
print("-- Create Rule")
await servicebus_mgmt_client.create_rule(TOPIC_NAME, SUBSCRIPTION_NAME, RULE_NAME)
print("Rule {} is created.".format(RULE_NAME))
print("")
async def delete_rule(servicebus_mgmt_client):
print("-- Delete Rule")
await servicebus_mgmt_client.delete_rule(TOPIC_NAME, SUBSCRIPTION_NAME, RULE_NAME)
print("Rule {} is deleted.".format(RULE_NAME))
print("")
async def list_rules(servicebus_mgmt_client):
print("-- List Rules")
async for rule_properties in servicebus_mgmt_client.list_rules(TOPIC_NAME, SUBSCRIPTION_NAME):
print("Rule Name:", rule_properties.name)
print("")
async def get_and_update_rule(servicebus_mgmt_client):
print("-- Get and Update Rule")
rule_properties = await servicebus_mgmt_client.get_rule(TOPIC_NAME, SUBSCRIPTION_NAME, RULE_NAME)
print("Rule Name:", rule_properties.name)
print("Please refer to RuleProperties for complete available properties.")
print("")
await servicebus_mgmt_client.update_rule(TOPIC_NAME, SUBSCRIPTION_NAME, rule_properties)
async def main():
async with ServiceBusAdministrationClient.from_connection_string(CONNECTION_STR) as servicebus_mgmt_client:
await create_rule(servicebus_mgmt_client)
await list_rules(servicebus_mgmt_client)
await get_and_update_rule(servicebus_mgmt_client)
await delete_rule(servicebus_mgmt_client)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
|