快速入門:使用 ARM 範本以部署 Azure SignalR Service

此快速入門會逐步引導您完成使用 Azure Resource Manager (ARM) 範本建立 Azure SignalR Service 的流程。 您可以透過 Azure 入口網站、PowerShell 或 CLI 來部署 Azure SignalR 服務。

Azure Resource Manager 範本是一個 JavaScript 物件標記法 (JSON) 檔案,會定義專案的基礎結構和設定。 範本使用宣告式語法。 您可以描述預期的部署,而不需要撰寫程式設計命令順序來建立部署。

如果您的環境符合必要條件,而且您很熟悉 ARM 範本,請選取 [部署至 Azure] 按鈕。 一旦您登入,範本就會在 Azure 入口網站中開啟。

將 Resource Manager 範本部署至 Azure 的按鈕。

必要條件

具有有效訂用帳戶的 Azure 帳戶。 免費建立一個

檢閱範本

本快速入門中使用的範本是來自 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"
            }
          ]
        }
      }
    }
  ]
}

範本會定義一個 Azure 資源:

部署範本

若要使用 ARM 範本以部署 Azure SignalR Service,請在 Azure 入口網站中選取下列連結:

將 Resource Manager 範本部署至 Azure 的按鈕。

在 [部署 Azure SignalR 服務] 頁面上:

  1. 如果您想要,請從預設值變更 [訂用帳戶]

  2. 針對 [資源群組],選取 [新建],然後輸入新資源群組的名稱並選取 [確認]

  3. 如果您已建立新的資源群組,請選取資源群組的 [區域]

  4. 如果您想要,請輸入 Azure SignalR Service 的新 [名稱] 和 [位置] (例如 eastus2)。 如果沒有指定名稱,則會自動產生名稱。 此位置可以與資源群組的區域相同或不同。 如果沒有指定位置,其預設為與資源群組相同的區域。

  5. 選擇 [定價層] (Free_F1Standard_S1),輸入 [容量] (SignalR 單位數),然後選擇 [預設] (需要中樞伺服器)、[無伺服器] (不允許任何伺服器連線) 或 [傳統](只有在中樞具有伺服器連線時才會路由傳送至中樞伺服器) 作為 [服務模式]。 立即選擇是否 [啟用連線記錄] 或 [啟用傳訊記錄]

    注意

    若為 [Free_F1] 定價層,容量限制為 1 單位。

    用於在 Azure 入口網站 中建立 Azure SignalR 服務的 ARM 範本螢幕快照。

  6. 選取 [檢閱 + 建立]。

  7. 閱讀條款及條件,然後選取 [建立]

注意

部署需要幾分鐘的時間才能完成。 記下 Azure SignalR 服務和資源群組的名稱,您可以在稍後用來檢閱已部署的資源。

檢閱已部署的資源

請依照下列步驟來查看新 Azure SignalR 服務的概觀:

  1. Azure 入口網站中,搜尋並選取 [SignalR]

  2. 在 FHIR 清單中,選取您的新服務。 新 Azure SignalR 服務的 [概觀] 頁面隨即出現。

清除資源

如果不再需要,請刪除資源群組,這會刪除資源群組中的資源。

  1. Azure 入口網站中,搜尋並選取 [資源群組]

  2. 在 [資源群組] 清單中,選擇資源群組的名稱。

  3. 在資源群組的 [概觀] 頁面中,選取 [刪除資源群組]

  4. 在確認對話方塊凹輸入您的資源群組名稱,然後選取 [刪除]

下一步

如需逐步教學課程,以引導您完成建立 ARM 範本的流程,請參閱: