英語で読む

次の方法で共有


Service Fabric マネージド クラスターで Azure Application Gateway を使用する

Azure Application Gateway は、アプリケーションに対するトラフィックを管理できる Web トラフィック ロードバランサーです。 Application Gateway を使用するといくつかの利点があります。 Service Fabric マネージド クラスターは Azure Application Gateway をサポートするため、ノードの種類を Application Gateway に接続できます。 Azure Application Gateway を作成し、リソース ID を Service Fabric マネージド クラスターの ARM テンプレートに渡すことができます。

Service Fabric マネージド クラスターで Application Gateway を使用する方法

必要条件

Service Fabric API バージョン 2022-08-01-Preview 以降を使用します。

手順

次のセクションでは、Service Fabric マネージド クラスターで Azure Application Gateway を使用するために実施すべき手順について説明します。

  1. クイックスタート: ポータルを使用して Web トラフィックを転送する - Azure Application Gateway」の手順に従います。 後の手順で使用するため、リソース ID をメモします。

  2. Application Gateway を Service Fabric マネージド クラスターのノードの種類と関連付けます。 これを行うには、SFMC にアプリケーション ゲートウェイに参加するためのアクセス許可を付与する必要があります。 このアクセス許可を付与するには、以下の手順に示される通り、SFMC にアプリケーション ゲートウェイのリソースへの「ネットワーク共同作成者」ロールを割り当てます。

    A. Service Fabric リソース プロバイダー アプリケーションのサブスクリプションからサービスの Id を取得します。

    PowerShell
    Login-AzAccount
    Select-AzSubscription -SubscriptionId <SubId>
    Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
    

    注意

    正しいサブスクリプションを使用していることを確認します。サブスクリプションが別のテナントにある場合は、プリンシパル ID が変わります。

    PowerShell
    ServicePrincipalNames : {74cb6831-0dbb-4be1-8206-fd4df301cdc2}
    ApplicationId         : 74cb6831-0dbb-4be1-8206-fd4df301cdc2
    ObjectType            : ServicePrincipal
    DisplayName           : Azure Service Fabric Resource Provider
    Id                    : 00000000-0000-0000-0000-000000000000
    

    後の手順で使用するため、上記の出力の IdprincipalId としてメモしておきます

    ロール定義名 ロール定義 ID
    Network Contributor 4d97b98b-1d4f-4787-a291-c67834d212e7

    Role definition nameRole definition ID のプロパティ値は後の手順で使用するので、メモしておいてください

    B. サンプル ARM デプロイ テンプレートを使用すると、共同作成者のアクセス権を使用してアプリケーション ゲートウェイにロールの割り当てを追加できます。 Azure ロールの詳細については、「Azure 組み込みロール - Azure RBAC」を参照してください。 このロールの割り当ては、最初の手順で決定されたプリンシパル ID とロール定義 ID を使用して、テンプレートのリソース セクションで定義されます。

    JSON
    "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 を介してロールの割り当てを追加することもできます。

    PowerShell
    New-AzRoleAssignment -PrincipalId "sfrpPrincipalId" `
    -RoleDefinitionId "4d97b98b-1d4f-4787-a291-c67834d212e7" `
    -ResourceName <resourceName> `
    -ResourceType <resourceType> `
    -ResourceGroupName <resourceGroupName>
    
  3. Service Fabric マネージド クラスターの作成の一環としてロールを割り当て、アプリケーション ゲートウェイの構成を追加するサンプル ARM デプロイ テンプレートを使用します。 上記で取得した principalIdappGatewayNameappGatewayBackendPoolId でテンプレートを更新します。

  4. また、既存の ARM テンプレートを変更し、アプリケーション ゲートウェイのリソース ID を受け取る Microsoft.ServiceFabric/managedClusters リソースの下に新しいプロパティ appGatewayBackendPoolId を追加することもできます。

    Resource Manager テンプレート:

JSON
     "frontendConfigurations": [ 
       { 
         "applicationGatewayBackendAddressPoolId": "<appGatewayBackendPoolId>" 
       } 
     ]