How to provision Azure resources
APPLIES TO: Composer v2.x
This article is for IT administrators and describes how to provision Azure resources on behalf of users.
Note
Azure QnA Maker will be retired on 31 March 2025. Beginning 1 October 2022, you won't be able to create new QnA Maker resources or knowledge bases. A newer version of the question and answering capability is now available as part of Azure AI Language.
Custom question answering, a feature of Azure AI Language, is the updated version of the QnA Maker service. For more information about question-and-answer support in Composer, see Natural language processing.
Note
Language Understanding (LUIS) will be retired on 1 October 2025. Beginning 1 April 2023, you won't be able to create new LUIS resources. A newer version of language understanding is now available as part of Azure AI Language.
Conversational language understanding (CLU), a feature of Azure AI Language, is the updated version of LUIS. For more information about question-and-answer support in Composer, see Natural language processing.
For information on how users without provisioning abilities can generate a handoff request, see how to Publish a bot to Azure.
Prerequisites
- A subscription to Microsoft Azure.
- Node.js. Use version 12.13.0 or later.
- Latest version of the Azure CLI.
- PowerShell version 6.0 or later.
Run the provisioning command
After you receive the resource provisioning request from your user, follow the steps described below.
Download the provisioning helper scripts.
Unzip the archive into a new folder called provisionScripts.
Open a new command prompt and navigate to the folder you created in the previous step. For example:
cd C:\Users\UserName\Documents\provisionScripts
Run the following command to install the dependencies. You must run this command every time you install a new version of the scripts.
npm install
Run the provisioning command shared by your requester to provision new Azure resources. The command structure is shown below. The provisioning process will take a few minutes to complete.
Note
Azure QnA Maker will be retired on 31 March 2025. Beginning 1 October 2022, you won't be able to create new QnA Maker resources or knowledge bases. A newer version of the question and answering capability is now available as part of Azure AI Language.
Custom question answering, a feature of Azure AI Language, is the updated version of the QnA Maker service. For more information about question-and-answer support in Composer, see Natural language processing.
Note
Language Understanding (LUIS) will be retired on 1 October 2025. Beginning 1 April 2023, you won't be able to create new LUIS resources. A newer version of language understanding is now available as part of Azure AI Language.
Conversational language understanding (CLU), a feature of Azure AI Language, is the updated version of LUIS. For more information about question-and-answer support in Composer, see Natural language processing.
node provisionComposer.js --subscriptionId=<YOUR AZURE SUBSCRIPTION ID> --name=<YOUR RESOURCE NAME> --appPassword=<APP PASSWORD> --environment=<NAME FOR ENVIRONMENT DEFAULT to dev> --location=<LOCATION> --createLuisResource=true --createLuisAuthoringResource=true --createCosmosDb=false --createStorage=false --createAppInsights=true --createQnAResource=false
Parameter Description Required subscriptionId
Your Azure subscription ID. Yes name
Azure resource name. Yes appPassword
Azure resource password. It must be at least 16 characters long, contain at least one upper or lower case alphabetical character, and contain at least one special character. Yes environment
Default to dev
Optional location
Azure resource group region. Default to westus
.Optional tenantId
ID of your tenant if necessary. If the default value doesn't apply, you get a user was not found error. createLuisResource
The LUIS prediction resource to create. Region is default to westus
and can't be changed. Default totrue
.createLuisAuthoringResource
The LUIS authoring resource to create. Region is default to westus
and can't be changed. Default totrue
.Optional createQnAResource
The QnA resource to create. Default to true
.Optional createCosmosDB
The Cosmos DB resource to create. Default to true
.Optional createStorage
The BlobStorage resource to create. Default to true
.Optional createAppInsights
The AppInsights resource to create. Default to true
.Optional As the Azure resources are being provisioned, you'll see a spinning activity indicator for a few minutes. Once completed, a publishing profile in JSON format is displayed.
Copy and save this profile. Then send it the user that made the provisioning request.
The process concludes when in Composer the user will publish the bot using the publishing profile received in the importing existing resources modality.
Share resource details
Once completed, a publishing profile in JSON format is displayed in the command line terminal.
- Copy and save this profile.
- Send it to the user that made the provisioning request.
The following code snippet is an example of the JSON file format.
{
"name": "<NAME OF YOUR RESOURCE GROUP>",
"environment": "<ENVIRONMENT>",
"hostname": "<NAME OF THE HOST>",
"luisResource": "<NAME OF YOUR LUIS RESOURCE>",
"settings": {
"applicationInsights": {
"InstrumentationKey": "<SOME VALUE>"
},
"cosmosDb": {
"cosmosDBEndpoint": "<SOME VALUE>",
"authKey": "<SOME VALUE>",
"databaseId": "botstate-db",
"collectionId": "botstate-collection",
"containerId": "botstate-container"
},
"blobStorage": {
"connectionString": "<SOME VALUE>",
"container": "transcripts"
},
"luis": {
"endpointKey": "<SOME VALUE>",
"authoringKey": "<SOME VALUE>",
"region": "westus"
},
"qna": {
"endpoint": "<SOME VALUE>",
"subscriptionKey": "<SOME VALUE>"
},
"MicrosoftAppId": "<SOME VALUE>",
"MicrosoftAppPassword": "<SOME VALUE>"
}
}
Navigate to your Azure portal, you should be able to see the resources created like the following:
Resource | Required/Optional | Description |
---|---|---|
Application Registration | Required | Required registration allowing your bot to communicate with Azure services. |
App Service | Required | Quickly build, deploy, and scale enterprise-grade web, mobile, and API apps running on any platform. |
Azure Bot resource | Required | Build, connect and manage bots to interact with your users from your app or website to Cortana, Skype, Messenger and many other services. |
Azure Cosmos DB | Optional | Azure cosmos is a multi-model database service backed up by comprehensive SLAs. Used for bot state retrieving. |
Application Insights | Optional | Application performance, availability and usage information at your fingertips. Used for bot chatting data analyzing. |
Azure Blob Storage | Optional | Scalable, durable cloud storage, backup and recovery solutions for any data, big or small. Used for bot transcripts logging. |
LUIS authoring resource (Azure AI services) | Optional | LUIS is an NLP service that enables you to understand human language in your own application. Used for Luis endpoint hitting. |
LUIS prediction resource (Azure AI services) | Optional | LUIS is an NLP service that enables you to understand human language in your own application. Used for Luis endpoint hitting. |
QnA Maker resource (Azure AI services) | Optional | Use QnA Maker to build a knowledge base by extracting questions and answers from your content, such as FAQs, documents, etc. |
You should then securely share the output JSON with the requester. Once the requester receives the resource details, they can use these resources to import existing Azure resources and publish your bot.
Additional information
- How to manually provision Azure resources for your Composer project. Learn more about how to run scripts to provision Azure resources and publish a bot.