Share via


快速入門:使用ARM範本部署 Azure SignalR 服務

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

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

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

Button to deploy the Resource Manager template to 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 服務,請在 Azure 入口網站 中選取下列連結:

Button to deploy the Resource Manager template to Azure.

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

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

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

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

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

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

    注意

    針對 Free_F1 定價層,容量限製為1個單位。

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

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

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

注意

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

檢閱已部署的資源

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

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

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

清除資源

不再需要資源群組時,請刪除資源群組,以刪除資源群組中的資源。

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

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

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

  4. 在確認對話框中,輸入資源群組的名稱,然後選取 [ 刪除]。

下一步

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