Operational Scripting
In order to provision or de-provision the resources required by an endpoint, the asb-transport command line (CLI) tool can be used.
The tool can be obtained from NuGet and installed using the following command:
dotnet tool install -g NServiceBus.Transport.AzureServiceBus.CommandLine
Once installed, the asb-transport command line tool will be available for use.
asb-transport
Available commands
endpoint createendpoint subscribeendpoint unsubscribequeue createqueue delete
asb-transport endpoint create
Creates infrastructure for an endpoint -- input queue.
asb-transport endpoint create name
[--size]
[--partitioned]
options
-c | --connection-string : Overrides the environment variable 'AzureServiceBus_ConnectionString'
-n | --namespace : Sets the fully qualified namespace to connect with cached credentials, e.g., credentials from Azure PowerShell or CLI. This setting cannot be used in conjunction with the connection string setting.
-s | --size : Queue size in GB (defaults to 5)
-p | --partitioned: Enable partitioning
asb-transport endpoint subscribe
Creates a new subscription for an endpoint.
asb-transport endpoint subscribe name topic
[--subscription]
Options
-c | --connection-string : Overrides the environment variable 'AzureServiceBus_ConnectionString'
-n | --namespace : Sets the fully qualified namespace to connect with cached credentials, e.g., credentials from Azure PowerShell or CLI. This setting cannot be used in conjunction with the connection string setting.
-b | --subscription: Subscription name (defaults to endpoint name)
asb-transport endpoint unsubscribe
Deletes a subscription for an endpoint.
asb-transport endpoint unsubscribe name topic
[--subscription]
Options
-c | --connection-string : Overrides the environment variable 'AzureServiceBus_ConnectionString'
-n | --namespace : Sets the fully qualified namespace to connect with cached credentials, e.g., credentials from Azure PowerShell or CLI. This setting cannot be used in conjunction with the connection string setting.
-b | --subscription: Subscription name (defaults to endpoint name)
asb-transport queue create
Create a queue using:
asb-transport queue create name
[--size]
[--partitioned]
options
-c | --connection-string : Overrides the environment variable 'AzureServiceBus_ConnectionString'
-n | --namespace : Sets the fully qualified namespace to connect with cached credentials, e.g., credentials from Azure PowerShell or CLI. This setting cannot be used in conjunction with the connection string setting.
-s | --size: Queue size in GB (defaults to 5)
-p | --partitioned: Enable partitioning
asb-transport queue delete
Delete a queue using:
asb-transport queue delete name
options
-c | --connection-string : Overrides the environment variable 'AzureServiceBus_ConnectionString'
-n | --namespace : Sets the fully qualified namespace to connect with cached credentials, e.g., credentials from Azure PowerShell or CLI. This setting cannot be used in conjunction with the connection string setting.
Migration-specific commands
These commands are dedicated to endpoints that are configured with the migration topology for the purpose of migrating from the single-topic publishing approach (forwarding topology) to topic-per-event approach.
migration endpoint createmigration endpoint subscribemigration endpoint unsubscribemigration endpoint subscribe migratedmigration endpoint unsubscribe migrated
asb-transport migration endpoint create
Creates infrastructure for an endpoint: input queue, topic, and subscription.
asb-transport migration endpoint create name
[--size]
[--partitioned]
[--topic]
[--topic-to-publish-to] [--topic-to-subscribe-on]
[--subscription]
options
-c | --connection-string : Overrides the environment variable 'AzureServiceBus_ConnectionString'
-n | --namespace : Sets the fully qualified namespace to connect with cached credentials, e.g., credentials from Azure PowerShell or CLI. This setting cannot be used in conjunction with the connection string setting.
-s | --size : Queue size in GB (defaults to 5)
-p | --partitioned: Enable partitioning
-t | --topic: Topic name (defaults to 'bundle-1')
-tp | --topic-to-publish-to: The topic name to publish to.
-ts | --topic-to-subscribe-on: The topic name to subscribe on.
-b | --subscription: Subscription name (defaults to endpoint name)
asb-transport migration endpoint subscribe
Creates a new subscription for an endpoint using single-topic approach.
asb-transport migration endpoint subscribe name event-type
[--topic]
[--subscription]
[--rule-name]
Options
-c | --connection-string : Overrides the environment variable 'AzureServiceBus_ConnectionString'
-n | --namespace : Sets the fully qualified namespace to connect with cached credentials, e.g., credentials from Azure PowerShell or CLI. This setting cannot be used in conjunction with the connection string setting.
-t | --topic: Topic name to subscribe on (defaults to 'bundle-1')
-b | --subscription: Subscription name (defaults to endpoint name)
-r | --rule-name: Rule name (defaults to event type)
asb-transport migration endpoint unsubscribe
Delete a subscription for an endpoint using single-topic approach.
asb-transport migration endpoint unsubscribe name event-type
[--topic]
[--subscription]
[--rule-name]
Options
-c | --connection-string : Overrides the environment variable 'AzureServiceBus_ConnectionString'
-n | --namespace : Sets the fully qualified namespace to connect with cached credentials, e.g., credentials from Azure PowerShell or CLI. This setting cannot be used in conjunction with the connection string setting.
-t | --topic: Topic name to unsubscribe from (defaults to 'bundle-1')
-b | --subscription: Subscription name (defaults to endpoint name)
-r | --rule-name: Rule name (defaults to event type)
asb-transport migration endpoint subscribe-migrated
Creates a new subscription for an endpoint using topic-per-event approach.
asb-transport migration endpoint subscribe-migrated name topic
[--subscription]
Options
-c | --connection-string : Overrides the environment variable 'AzureServiceBus_ConnectionString'
-n | --namespace : Sets the fully qualified namespace to connect with cached credentials, e.g., credentials from Azure PowerShell or CLI. This setting cannot be used in conjunction with the connection string setting.
-b | --subscription: Subscription name (defaults to endpoint name)
asb-transport migration endpoint unsubscribe-migrated
Deletes a subscription for an endpoint using topic-per-event approach.
asb-transport migration endpoint unsubscribe-migrated name topic
[--subscription]
Options
-c | --connection-string : Overrides the environment variable 'AzureServiceBus_ConnectionString'
-n | --namespace : Sets the fully qualified namespace to connect with cached credentials, e.g., credentials from Azure PowerShell or CLI. This setting cannot be used in conjunction with the connection string setting.
-b | --subscription: Subscription name (defaults to endpoint name)
Examples
Provisioning the audit and the error queues
asb-transport queue create audit -c "<connection-string>"
asb-transport queue create error -c "<connection-string>"
Using connection strings
asb-transport [command] [subcommand] -c "<connection-string>"
Using cached credentials
asb-transport [command] [subcommand] -n "somenamespace.servicebus.windows.net"
Provisioning endpoints
Create the topology for an endpoint named MyEndpoint:
asb-transport endpoint create MyEndpoint -c "<connection-string>"
Subscribing to events
Subscribe MyOtherEndpoint to the event Contracts. using the default settings:
asb-transport endpoint subscribe MyOtherEndpoint Contracts.Events.SomeEvent -c "<connection-string>"
Subscribe MyOtherEndpoint to the event Contracts. and override the subscription name to be my-other-endpoint
asb-transport endpoint subscribe MyOtherEndpoint Contracts.Events.SomeEvent -s my-other-endpoint -c "<connection-string>"
Provisioning endpoints that use migration topology
Create the topology for an endpoint named MyEndpoint using the default settings:
asb-transport migration endpoint create MyEndpoint -c "<connection-string>"
Create the topology for an endpoint named MyEndpoint and override the topic name to be custom-topic and the subscription name to be my-endpoint:
asb-transport migration endpoint create MyEndpoint -t custom-topic -s my-endpoint -c "<connection-string>"
Create the topology for an endpoint named MyEndpoint and override the publish topic name to be custom-publish-topic and the subscription topic name to be custom-subscribe-topic:
asb-transport migration endpoint create MyEndpoint -tp custom-publish-topic -ts custom-subscribe-topic -c "<connection-string>"
Subscribing to events
Subscribe MyOtherEndpoint to the event Contracts. using the default settings:
asb-transport migration endpoint subscribe MyOtherEndpoint Contracts.Events.SomeEvent -c "<connection-string>"
Subscribe MyOtherEndpoint to the event Contracts. using the topic-per-event apprach (after migration):
asb-transport migration endpoint subscribe-migrated MyOtherEndpoint Contracts.Events.SomeEvent -c "<connection-string>"
Subscribe MyOtherEndpoint to the event Contracts. and override the topic name to be custom-topic:
asb-transport migration endpoint subscribe MyOtherEndpoint Contracts.Events.SomeEvent -t custom-topic -c "<connection-string>"
Subscribe MyOtherEndpoint to the event Contracts. and override the subscription name to be my-other-endpoint
asb-transport migration endpoint subscribe MyOtherEndpoint Contracts.Events.SomeEvent -s my-other-endpoint -c "<connection-string>"
Subscribe MyOtherEndpoint to the event Contracts. and override the subscription rule name to be SomeEvent:
asb-transport migration endpoint subscribe MyOtherEndpoint Contracts.Events.SomeEvent -r SomeEvent -c "<connection-string>"