Azure 應用程式閘道是網路流量負載平衡器,可讓您管理 Web 應用程式的流量。 使用應用程式閘道有幾項優點。 Service Fabric 受控叢集支援 Azure 應用程式閘道,並可讓您將節點類型連線至應用程式閘道。 您可以建立 Azure 應用程式閘道,並將資源識別碼傳遞至 Service Fabric 受控叢集 ARM 範本。
如何在 Service Fabric 受控叢集中使用應用程式閘道
需求
使用 Service Fabric API 版本 2022-08-01-Preview (或更新版本)。
步驟
下一節說明在 Service Fabric 受控叢集中使用 Azure 應用程式閘道所應採取的步驟:
請遵循快速入門:使用入口網站引導 Web 流量 - Azure 應用程式閘道中的步驟。 請記下資源識別碼,以供後續步驟使用。
將應用程式閘道連結至 Service Fabric 受控叢集的節點類型。 若要這樣做,您必須授與 SFMC 加入應用程式閘道的權限。 在應用程式閘道資源上指派 SFMC「網路參與者」角色來授與此權限,如下列步驟所述:
A. 從訂用帳戶取得 Service Fabric 資源提供者應用程式的服務
Id
。Login-AzAccount Select-AzSubscription -SubscriptionId <SubId> Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
注意
請確定您位於正確的訂用帳戶中,如果訂用帳戶位於不同的租用戶,主體識別碼將會變更。
ServicePrincipalNames : {00001111-aaaa-2222-bbbb-3333cccc4444} ApplicationId : 00001111-aaaa-2222-bbbb-3333cccc4444 ObjectType : ServicePrincipal DisplayName : Azure Service Fabric Resource Provider Id : 00000000-0000-0000-0000-000000000000
請記下先前輸出的 Id 來作為 principalId,以供稍後的步驟使用
角色定義名稱 角色定義識別碼 網路參與者 4d97b98b-1d4f-4787-a291-c67834d212e7 請記下
Role definition name
和Role definition ID
屬性值,以供稍後的步驟使用B. 範例 ARM 部署範本將角色指派新增至具有參與者存取權的應用程式閘道。 如需 Azure 角色的詳細資訊,請參閱 Azure 內建角色 - Azure RBAC。 此角色指派定義於範本的資源章節中,其中 PrincipalId 和角色定義識別碼是由第一個步驟所決定。
"variables": { "sfApiVersion": "2022-08-01-preview", "networkApiVersion": "2020-08-01", "clusterResourceId": "[resourceId('Microsoft.ServiceFabric/managedclusters', parameters('clusterName'))]", "rgRoleAssignmentId": "[guid(resourceGroup().id, 'SFRP-NetworkContributor')]", "auxSubnetName": "AppGateway", "auxSubnetNsgName": "AppGatewayNsg", "auxSubnetNsgID": "[resourceId('Microsoft.Network/networkSecurityGroups', variables('auxSubnetNsgName'))]", "frontendIPName": "[concat(parameters('clusterName'), '-AppGW-IP')]", "appGatewayName": "[concat(parameters('clusterName'), '-AppGW')]", "appGatewayDnsName": "[concat(parameters('clusterName'), '-appgw')]", "appGatewayResourceId": "[resourceId('Microsoft.Network/applicationGateways', variables('appGatewayName'))]", "appGatewayFrontendPort": 80, "appGatewayBackendPort": 8000, "appGatewayBackendPool": "AppGatewayBackendPool", "frontendConfigAppGateway": [ { "applicationGatewayBackendAddressPoolId": "[resourceId('Microsoft.Network/applicationGateways/backendAddressPools', variables('appGatewayName'), variables('appGatewayBackendPool'))]" } ], "primaryNTFrontendConfig": "[if(parameters('enableAppGateway'), variables('frontendConfigAppGateway'), createArray())]", "secondaryNTFrontendConfig": "[if(parameters('enableAppGateway'), variables('frontendConfigAppGateway'), createArray())]" }, "resources": [ { "type": "Microsoft.Authorization/roleAssignments", "apiVersion": "2020-04-01-preview", "name": "[variables('rgRoleAssignmentId')]", "properties": { "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7')]", "principalId": "[parameters('sfrpPrincipalId')]" } },
或者,您也可以使用第一個步驟所決定的 PrincipalId 和角色定義名稱,透過 PowerShell 來新增角色指派為「參與者」 (如果適用)。
New-AzRoleAssignment -PrincipalId "sfrpPrincipalId" ` -RoleDefinitionId "4d97b98b-1d4f-4787-a291-c67834d212e7" ` -ResourceName <resourceName> ` -ResourceType <resourceType> ` -ResourceGroupName <resourceGroupName>
使用範例 ARM 部署範本,其可指派角色並新增應用程式閘道設定 (作為 Service Fabric 受控叢集建立的一部分)。 使用上述取得的
principalId
、appGatewayName
和appGatewayBackendPoolId
來更新範本。您也可以在採用應用程式閘道之資源識別碼的 Microsoft.ServiceFabric/managedClusters 資源下修改現有 ARM 範本並新增新屬性
appGatewayBackendPoolId
。ARM 範本:
"frontendConfigurations": [
{
"applicationGatewayBackendAddressPoolId": "<appGatewayBackendPoolId>"
}
]