Guida introduttiva: Usare un modello di Resource Manager per distribuire Servizio Azure SignalR

Questa guida introduttiva illustra il processo di creazione di un Servizio Azure SignalR usando un modello di Azure Resource Manager (ARM). Per distribuire il servizio Azure SignalR è possibile usare il portale di Azure, PowerShell o l'interfaccia della riga di comando.

Un modello di Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione per il progetto. Il modello utilizza la sintassi dichiarativa. Si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione per creare la distribuzione.

Se l'ambiente soddisfa i prerequisiti e si ha familiarità con l'uso dei modelli di Resource Manager, selezionare il pulsante Distribuisci in Azure. Il modello viene aperto nel portale di Azure dopo l'accesso.

Button to deploy the Resource Manager template to Azure.

Prerequisiti

Un account Azure con una sottoscrizione attiva. Crearne una gratuitamente.

Rivedere il modello

Il modello usato in questo avvio rapido proviene dai modelli di avvio rapido di Azure.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.9.1.41621",
      "templateHash": "7185938028783900711"
    }
  },
  "parameters": {
    "name": {
      "type": "string",
      "defaultValue": "[uniqueString(resourceGroup().id)]",
      "metadata": {
        "description": "The globally unique name of the SignalR resource to create."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for the SignalR resource."
      }
    },
    "pricingTier": {
      "type": "string",
      "defaultValue": "Standard_S1",
      "allowedValues": [
        "Free_F1",
        "Standard_S1",
        "Premium_P1"
      ],
      "metadata": {
        "description": "The pricing tier of the SignalR resource."
      }
    },
    "capacity": {
      "type": "int",
      "defaultValue": 1,
      "allowedValues": [
        1,
        2,
        5,
        10,
        20,
        50,
        100
      ],
      "metadata": {
        "description": "The number of SignalR Unit."
      }
    },
    "serviceMode": {
      "type": "string",
      "defaultValue": "Default",
      "allowedValues": [
        "Default",
        "Serverless",
        "Classic"
      ],
      "metadata": {
        "description": "Visit https://github.com/Azure/azure-signalr/blob/dev/docs/faq.md#service-mode to understand SignalR Service Mode."
      }
    },
    "enableConnectivityLogs": {
      "type": "bool",
      "defaultValue": true
    },
    "enableMessagingLogs": {
      "type": "bool",
      "defaultValue": true
    },
    "enableLiveTrace": {
      "type": "bool",
      "defaultValue": true
    },
    "allowedOrigins": {
      "type": "array",
      "defaultValue": [
        "*"
      ],
      "metadata": {
        "description": "Set the list of origins that should be allowed to make cross-origin calls."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.SignalRService/signalR",
      "apiVersion": "2022-02-01",
      "name": "[parameters('name')]",
      "location": "[parameters('location')]",
      "sku": {
        "capacity": "[parameters('capacity')]",
        "name": "[parameters('pricingTier')]"
      },
      "kind": "SignalR",
      "identity": {
        "type": "SystemAssigned"
      },
      "properties": {
        "tls": {
          "clientCertEnabled": false
        },
        "features": [
          {
            "flag": "ServiceMode",
            "value": "[parameters('serviceMode')]"
          },
          {
            "flag": "EnableConnectivityLogs",
            "value": "[string(parameters('enableConnectivityLogs'))]"
          },
          {
            "flag": "EnableMessagingLogs",
            "value": "[string(parameters('enableMessagingLogs'))]"
          },
          {
            "flag": "EnableLiveTrace",
            "value": "[string(parameters('enableLiveTrace'))]"
          }
        ],
        "cors": {
          "allowedOrigins": "[parameters('allowedOrigins')]"
        },
        "networkACLs": {
          "defaultAction": "Deny",
          "publicNetwork": {
            "allow": [
              "ClientConnection"
            ]
          },
          "privateEndpoints": [
            {
              "name": "mySignalRService.1fa229cd-bf3f-47f0-8c49-afb36723997e",
              "allow": [
                "ServerConnection"
              ]
            }
          ]
        },
        "upstream": {
          "templates": [
            {
              "categoryPattern": "*",
              "eventPattern": "connect,disconnect",
              "hubPattern": "*",
              "urlTemplate": "https://example.com/chat/api/connect"
            }
          ]
        }
      }
    }
  ]
}

Il modello definisce una risorsa di Azure:

Distribuire il modello

Per distribuire il Servizio Azure SignalR usando il modello di Resource Manager, selezionare il collegamento seguente nella portale di Azure:

Button to deploy the Resource Manager template to Azure.

Nella pagina Deploy an Azure SignalR service (Distribuisci un servizio Azure SignalR):

  1. Facoltativamente, cambiare il valore predefinito di Sottoscrizione.

  2. In Gruppo di risorse selezionare Crea nuovo, immettere un nome per il nuovo gruppo di risorse e quindi fare clic su OK.

  3. Se è stato creato un nuovo gruppo di risorse, in Area selezionare un valore per il gruppo di risorse.

  4. Se si desidera, immettere un nuovo nome e la località (ad esempio eastus2) del Servizio Azure SignalR. Se Name non è specificato, viene generato automaticamente. La località può essere la stessa o diversa dall'area del gruppo di risorse. Se Località non è specificata, per impostazione predefinita corrisponde alla stessa area del gruppo di risorse.

  5. Scegliere un valore per Piano tariffario (Free_F1 o Standard_S1), immettere un valore per Capacità (numero di unità SignalR) e quindi per Modalità servizio scegliere Predefinita (richiede un server di hub), Serverless (non consente alcuna connessione server) o Classica (con il routing al server di hub solo se l'hub ha una connessione server). Scegliere ora se abilitare i log di Connessione ivity o abilitare i log di messaggistica.

    Nota

    Per il piano tariffario Free_F1, la capacità è limitata a una unità.

    Screenshot of the ARM template for creating an Azure SignalR Service in the Azure portal.

  6. Selezionare Rivedi e crea.

  7. Leggere le condizioni e quindi selezionare Crea.

Nota

Per il completamento della distribuzione possono essere necessari alcuni minuti. Prendere nota dei nomi del servizio Azure SignalR e del gruppo di risorse, che verranno usati più avanti per esaminare le risorse distribuite.

Esaminare le risorse distribuite

Seguire questa procedura per vedere una panoramica del nuovo servizio Azure SignalR:

  1. Nel portale di Azure cercare e selezionare SignalR.

  2. Nell'elenco di servizi SignalR selezionare il nuovo servizio. Viene visualizzata la pagina Panoramica del nuovo servizio Azure SignalR.

Pulire le risorse

Quando non è più necessario, eliminare il gruppo di risorse per eliminare tutte le risorse contenute al suo interno.

  1. Nel portale di Azure cercare e selezionare Gruppi di risorse.

  2. Nell'elenco dei gruppi di risorse scegliere il nome del gruppo di risorse.

  3. Nella pagina Panoramica del gruppo di risorse selezionare Elimina gruppo di risorse.

  4. Nella finestra di dialogo di conferma, digitare il nome del gruppo di risorse e quindi selezionare Elimina.

Passaggi successivi

Per un'esercitazione dettagliata che illustra il processo di creazione di un modello di Resource Manager, vedere: