Creare un'app Web che usa l'autenticazione del servizio SignalR e GitHub
Questo script di esempio crea una nuova risorsa servizio Azure SignalR che viene usata per eseguire il push in tempo reale degli aggiornamenti del contenuto verso i client. Questo script aggiunge anche una nuova app Web e un nuovo piano di servizio app per ospitare l'app Web ASP.NET Core che usa il servizio SignalR. L'app Web è configurata con le impostazioni app per connettersi alla nuova risorsa servizio SignalR ed eseguire l'autenticazione con l'autenticazione di GitHub. L'app Web viene anche configurata per l'uso di un'origine di distribuzione del repository Git locale.
Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
Azure Cloud Shell
Azure Cloud Shell è un ambiente di shell interattivo ospitato in Azure e usato tramite il browser. È possibile usare Bash o PowerShell con Cloud Shell per usare i servizi di Azure. È possibile usare i comandi preinstallati di Cloud Shell per eseguire il codice contenuto in questo articolo senza dover installare strumenti nell'ambiente locale.
Per avviare Azure Cloud Shell:
Opzione | Esempio/Collegamento |
---|---|
Selezionare Prova nell'angolo superiore destro di un blocco di codice o di comando. Quando si seleziona Prova, il codice o il comando non viene copiato automaticamente in Cloud Shell. | |
Passare a https://shell.azure.com o selezionare il pulsante Avvia Cloud Shell per aprire Cloud Shell nel browser. | |
Selezionare il pulsante Cloud Shell nella barra dei menu nell'angolo in alto a destra del portale di Azure. |
Per usare Azure Cloud Shell:
Avviare Cloud Shell.
Selezionare il pulsante Copia in un blocco di codice (o in un blocco di comando) per copiare il codice o il comando.
Incollare il codice o il comando nella sessione di Cloud Shell selezionando CTRL+MAIUSC+V in Windows e Linux o selezionando CMD+MAIUSC+V in macOS.
Premere Invio per eseguire il codice o il comando.
Script di esempio
Avviare Azure Cloud Shell
Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo. Include strumenti comuni di Azure preinstallati e configurati per l'uso con l'account.
Per aprire Cloud Shell, basta selezionare Prova nell'angolo superiore destro di un blocco di codice. È anche possibile avviare Cloud Shell in una scheda separata del browser visitando https://shell.azure.com.
Quando si apre Cloud Shell, verificare che sia selezionato Bash per l'ambiente. Le sessioni successive useranno l'interfaccia della riga di comando di Azure in un ambiente Bash. Selezionare Copia per copiare i blocchi di codice, incollarli in Cloud Shell e premere INVIO per eseguirli.
Accedere ad Azure
Cloud Shell viene autenticato automaticamente con l'account iniziale con cui è stato eseguito l'accesso. Usare lo script seguente per accedere usando una sottoscrizione diversa, sostituendo <Subscription ID>
con l'ID sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account Azure gratuito prima di iniziare.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
Per altre informazioni, vedere Impostare la sottoscrizione attiva oppure Accedere in modo interattivo
Creare il Servizio SignalR con un servizio app
# Create a SignalR Service with an App Service
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
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"
Abilitare l'autenticazione GitHub e la distribuzione Git per l'app Web
Aggiornare i valori nello script seguente per il nome utente della distribuzione desiderato e la relativa password
deploymentUser=<Replace with your desired username> deploymentUserPassword=<Replace with your desired password>
Aggiornare i valori nello script seguente in base alla registrazione dell'app OAuth di GitHub.
GitHubClientId=<Replace with your GitHub OAuth app Client ID> GitHubClientSecret=<Replace with your GitHub OAuth app Client Secret>
Aggiungere le impostazioni dell'app da usare con l'autenticazione di GitHub
az webapp config appsettings set --name $webApp --resource-group $resourceGroup --settings "GitHubClientSecret=$GitHubClientSecret"
Aggiornare l'app Web con il nome utente e la password di distribuzione desiderati
az webapp deployment user set --user-name $deploymentUser --password $deploymentUserPassword
Configurare la distribuzione Git e restituire l'URL di distribuzione.
az webapp deployment source config-local-git --name $webAppName --resource-group $resourceGroupName --query [url] -o tsv
Pulire le risorse
Usare il seguente comando per rimuovere il gruppo di risorse e tutte le risorse associate usando il comando az group delete, a meno che non si abbia una necessità continua di queste risorse. La creazione e l'eliminazione di alcune di queste risorse può richiedere tempo.
az group delete --name $resourceGroup
Informazioni di riferimento per l'esempio
Ogni comando della tabella include collegamenti alla documentazione specifica del comando. Questo script usa i comandi seguenti:
Comando | Note |
---|---|
az group create | Consente di creare un gruppo di risorse in cui sono archiviate tutte le risorse. |
az signalr create | Crea una risorsa servizio Azure SignalR. |
az signalr key list | Elencare le chiavi che saranno usate dall'applicazione per il push in tempo reale degli aggiornamenti del contenuto con SignalR. |
az appservice plan create | Crea un piano del servizio app di Azure per l'hosting di app Web. |
az webapp create | Crea un'app Web di Azure usando il piano di servizio app host. |
az webapp config appsettings set | Aggiunge nuove impostazioni app per l'app Web. Queste impostazioni app vengono usate per archiviare la stringa di connessione SignalR e i segreti dell'app GitHub OAuth. |
az webapp deployment user set | Aggiornare le credenziali di distribuzione. |
az webapp deployment source config-local-git | Ottenere un URL per un endpoint del repository git in cui clonare ed eseguire il push della distribuzione dell'app Web. |
Passaggi successivi
Per altre informazioni sull'interfaccia della riga di comando di Azure, vedere la documentazione sull'interfaccia della riga di comando di Azure.
Altri esempi di script dell'interfaccia della riga di comando del servizio Azure SignalR sono disponibili nella documentazione del servizio Azure SignalR.