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 create
endpoint subscribe
endpoint unsubscribe
queue create
queue 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 create
migration endpoint subscribe
migration endpoint unsubscribe
migration endpoint subscribe migrated
migration 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>"