# Operational Scripting ## 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 [options]` ## Available commands - `endpoint create` - `endpoint subscribe` - `endpoint unsubscribe` - `queue create` - `queue delete` ### asb-transport endpoint create Creates infrastructure for an endpoint: input queue, topic, and subscription. ``` asb-transport 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 endpoint subscribe Creates a new subscription for an endpoint. ``` asb-transport 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 endpoint unsubscribe Deletes a subscription for an endpoint. ``` asb-transport 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 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. ## Examples ### Provisioning the audit and the error queues ``` asb-transport queue create audit -c "" asb-transport queue create error -c "" ``` ### Using connection strings ``` asb-transport [command] [subcommand] -c "" ``` ### Using cached credentials ``` asb-transport [command] [subcommand] -n "somenamespace.servicebus.windows.net" ``` ### Provisioning endpoints Create the topology for an endpoint named `MyEndpoint` using the default settings: ``` asb-transport endpoint create MyEndpoint -c "" ``` 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 endpoint create MyEndpoint -t custom-topic -s my-endpoint -c "" ``` 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 endpoint create MyEndpoint -tp custom-publish-topic -ts custom-subscribe-topic -c "" ``` ### Subscribing to events Subscribe `MyOtherEndpoint` to the event `Contracts.Events.SomeEvent` using the default settings: ``` asb-transport endpoint subscribe MyOtherEndpoint Contracts.Events.SomeEvent -c "" ``` Subscribe `MyOtherEndpoint` to the event `Contracts.Events.SomeEvent` and override the topic name to be `custom-topic`: ``` asb-transport endpoint subscribe MyOtherEndpoint Contracts.Events.SomeEvent -t custom-topic -c "" ``` Subscribe `MyOtherEndpoint` to the event `Contracts.Events.SomeEvent` and override the subscription name to be `my-other-endpoint` ``` asb-transport endpoint subscribe MyOtherEndpoint Contracts.Events.SomeEvent -s my-other-endpoint -c "" ``` Subscribe `MyOtherEndpoint` to the event `Contracts.Events.SomeEvent` and override the subscription rule name to be `SomeEvent`: ``` asb-transport endpoint subscribe MyOtherEndpoint Contracts.Events.SomeEvent -r SomeEvent -c "" ```