Create a web app that uses SignalR Service and GitHub authentication
This sample script creates a new Azure SignalR Service resource, which is used to push real-time content updates to clients. This script also adds a new Web App and App Service plan to host your ASP.NET Core Web App that uses the SignalR Service. The web app is configured with app settings to connect to the new SignalR service resource, and authenticate with GitHub authentication. The web app is also configured to use a local git repository deployment source.
If you don't have an Azure trail subscription, create a trial subscription before you begin.
Sample scripts
Sign in to Azure
Use the following script to sign in using a different subscription, replacing <Subscription ID>
with your Azure Subscription ID. If you don't have an Azure trail subscription, create a trial subscription before you begin.
az cloud set -n AzureChinaCloud
az login
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
For more information, see set active subscription or log in.
Create the SignalR service with an App service
# Create a SignalR Service with an App Service
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="China East 2"
resourceGroup="msdocs-azure-signalr-rg-$randomIdentifier"
tag="create-signal-service-with-app-service"
signalRSvc="msdocs-signalr-svc-$randomIdentifier"
webApp="msdocs-web-app-signalr-$randomIdentifier"
appSvcPlan="msdocs-app-svc-plan-$randomIdentifier"
signalRSku="Standard_S1"
unitCount="1"
serviceMode="Default"
planSku="Free"
# Create a resource group
echo "Creating $resourceGroup in "$location"..."
az group create --name $resourceGroup --location "$location" --tag $tag
# Create the Azure SignalR Service resource
echo "Creating $signalRSvc"
az signalr create \
--name $signalRSvc \
--resource-group $resourceGroup \
--sku $signalRSku \
--unit-count $unitCount \
--service-mode $serviceMode
# Create an App Service plan.
echo "Creating $appSvcPlan"
az appservice plan create --name $appSvcPlan --resource-group $resourceGroup --sku $planSku
# Create the Web App
echo "Creating $webApp"
az webapp create --name $webApp --resource-group $resourceGroup --plan $appSvcPlan
# Get the SignalR primary connection string
primaryConnectionString=$(az signalr key list --name $signalRSvc \
--resource-group $resourceGroup --query primaryConnectionString -o tsv)
echo $primaryConnectionString
# Add an app setting to the web app for the SignalR connection
az webapp config appsettings set --name $webApp --resource-group $resourceGroup \
--settings "AzureSignalRConnectionString=$primaryConnectionString"
Enable GitHub authentication and Git deployment for web app
Update the values in the following script for the desired deployment username and its passwor
deploymentUser=<Replace with your desired username> deploymentUserPassword=<Replace with your desired password>
Update the values in the following script based on your GitHub OAuth App registration.
GitHubClientId=<Replace with your GitHub OAuth app Client ID> GitHubClientSecret=<Replace with your GitHub OAuth app Client Secret>
Add app settings to use with GitHub authentication
az webapp config appsettings set --name $webApp --resource-group $resourceGroup --settings "GitHubClientSecret=$GitHubClientSecret"
Update the webapp with the desired deployment user name and password
az webapp deployment user set --user-name $deploymentUser --password $deploymentUserPassword
Configure Git deployment and return the deployment URL.
az webapp deployment source config-local-git --name $webAppName --resource-group $resourceGroupName --query [url] -o tsv
Clean up resources
Use the following command to remove the resource group and all resources associated with it using the az group delete command - unless you have an ongoing need for these resources. Some of these resources may take a while to create, as well as to delete.
az group delete --name $resourceGroup
Sample reference
Each command in the table links to command specific documentation. This script uses the following commands:
Command | Notes |
---|---|
az group create | Creates a resource group in which all resources are stored. |
az signalr create | Creates an Azure SignalR Service resource. |
az signalr key list | List the keys, which will be used by your application when pushing real-time content updates with SignalR. |
az appservice plan create | Creates an Azure App Service Plan for hosting web apps. |
az webapp create | Creates an Azure Web app using the App Service hosting plan. |
az webapp config appsettings set | Adds new app settings for the web app. These app settings are used to store the SignalR connection string and GitHub OAuth app secrets. |
az webapp deployment user set | Update deployment credentials. |
az webapp deployment source config-local-git | Get a URL for a git repository endpoint to clone and push to for web app deployment. |
Next steps
For more information on the Azure CLI, see Azure CLI documentation.
Additional Azure SignalR Service CLI script samples can be found in the Azure SignalR Service documentation.