Azure Service Fabric のリバース プロキシReverse proxy in Azure Service Fabric

Azure Service Fabric に組み込まれたリバース プロキシは、Service Fabric クラスターで実行されているマイクロサービスが HTTP エンドポイントを持つ他のサービスを検出してそのサービスと通信するのに役立ちます。Reverse proxy built into Azure Service Fabric helps microservices running in a Service Fabric cluster discover and communicate with other services that have http endpoints.

マイクロサービス通信モデルMicroservices communication model

Service Fabric のマイクロサービスは、クラスター内のノード のサブセットで実行され、さまざまな理由からノード間で移動することができます。Microservices in Service Fabric run on a subset of nodes in the cluster and can migrate between the nodes for various reasons. その結果、マイクロサービスのエンドポイントが動的に変更される可能性があります。As a result, the endpoints for microservices can change dynamically. マイクロサービスがクラスター内の他のサービスを検出してそのサービスと通信するには、次の手順を実行する必要があります。To discover and communicate with other services in the cluster, microservice must go through the following steps:

  1. ネーム サービスによってサービスの場所を解決します。Resolve the service location through the naming service.
  2. サービスに接続します。Connect to the service.
  3. 上記の手順を、接続エラーに適用するサービスの解決および再試行のポリシーを実装するループにラップします。Wrap the preceding steps in a loop that implements service resolution and retry policies to apply on connection failures

詳細については、サービスとの接続と通信に関する記事をご覧ください。For more information, see Connect and communicate with services.

リバース プロキシを使用した通信Communicating by using the reverse proxy

リバース プロキシは、すべてのノードで実行され、エンドポイントの解決、自動再試行、その他の接続エラーをクライアント サービスに代わって処理するサービスです。Reverse proxy is a service that runs on every node and handles endpoint resolution, automatic retry, and other connection failures on behalf of client services. リバース プロキシを、クライアント サービスからの要求の処理時にさまざまなポリシーを適用するように構成できます。Reverse proxy can be configured to apply various policies as it handles requests from client services. リバース プロキシを使用すると、クライアント サービスがクライアント側の HTTP 通信ライブラリを使用でき、サービスに特別な解決および再試行のロジックを実装する必要がなくなります。Using a reverse proxy allows the client service to use any client-side HTTP communication libraries and does not require special resolution and retry logic in the service.

リバース プロキシは、クライアント サービスが他のサービスに要求を送信するために使用する、ローカル ノード上の 1 つ以上のエンドポイントを公開します。Reverse proxy exposes one or more endpoints on local node for client services to use for sending requests to other services.

内部通信

サポートされているプラットフォームSupported Platforms

Service Fabric のリバース プロキシでは現在、次のプラットフォームがサポートされています。Reverse proxy in Service Fabric currently supports the following platforms

  • Windows クラスター: Windows 8 以降または Windows Server 2012 以降Windows Cluster: Windows 8 and later or Windows Server 2012 and later
  • Linux クラスター: 現在、リバース プロキシは Linux クラスターでは使用できませんLinux Cluster: Reverse Proxy is not currently available for Linux clusters

クラスターの外部からのマイクロサービスへの到達Reaching microservices from outside the cluster

マイクロサービスの既定の外部通信モデルは、外部クライアントから各サービスに直接アクセスできないオプトイン モデルです。The default external communication model for microservices is an opt-in model where each service cannot be accessed directly from external clients. Azure Load Balancer は、マイクロサービスと外部クライアントの間のネットワーク境界であり、ネットワーク アドレス変換を実行して、外部要求を内部の IP:port エンドポイントに転送します。Azure Load Balancer, which is a network boundary between microservices and external clients, performs network address translation and forwards external requests to internal IP:port endpoints. マイクロサービスのエンドポイントが外部クライアントに直接アクセスできるようにするには、クラスター内のサービスで使用される各ポートにトラフィックを転送するように Load Balancer を構成しておく必要があります。To make a microservice's endpoint directly accessible to external clients, you must first configure Load Balancer to forward traffic to each port that the service uses in the cluster. さらに、ほとんどのマイクロサービス (特にステートフル マイクロサービス) は、クラスターのすべてのノードに存在するわけではありません。Furthermore, most microservices, especially stateful microservices, don't live on all nodes of the cluster. マイクロサービスは、フェールオーバー時にノード間を移動する可能性があります。The microservices can move between nodes on failover. このような場合、Load Balancer はトラフィックの転送先となるレプリカのターゲット ノードの場所を実際には特定できません。In such cases, Load Balancer cannot effectively determine the location of the target node of the replicas to which it should forward traffic.

クラスターの外部からのリバース プロキシ経由でのマイクロサービスへの到達Reaching microservices via the reverse proxy from outside the cluster

Load Balancer で個々のサービスのポートを構成するのではなく、リバース プロキシのポートだけを構成できます。Instead of configuring the port of an individual service in Load Balancer, you can configure just the port of the reverse proxy in Load Balancer. この構成では、クラスターの外部のクライアントは、追加構成なしにリバース プロキシを使用してクラスター内のサービスに到達できます。This configuration lets clients outside the cluster reach services inside the cluster by using the reverse proxy without additional configuration.

外部通信

警告

Load Balancer でリバース プロキシのポートを構成すると、クラスター内の HTTP エンドポイントを公開するすべてのマイクロサービスをクラスターの外部からアドレス指定できるようになります。When you configure the reverse proxy's port in Load Balancer, all microservices in the cluster that expose an HTTP endpoint are addressable from outside the cluster.

リバース プロキシを使用してサービスのアドレス指定を行うための URI 形式URI format for addressing services by using the reverse proxy

リバース プロキシでは、次の URI (Uniform Resource Identifier) 形式を使用して、受信要求の転送先となるサービス パーティションを特定します。The reverse proxy uses a specific uniform resource identifier (URI) format to identify the service partition to which the incoming request should be forwarded:

http(s)://<Cluster FQDN | internal IP>:Port/<ServiceInstanceName>/<Suffix path>?PartitionKey=<key>&PartitionKind=<partitionkind>&ListenerName=<listenerName>&TargetReplicaSelector=<targetReplicaSelector>&Timeout=<timeout_in_seconds>
  • http (s): HTTP または HTTPS トラフィックを受け入れるようにリバース プロキシを構成できます。http(s): The reverse proxy can be configured to accept HTTP or HTTPS traffic. HTTPS 転送の場合、HTTPS でリッスンするようにリバース プロキシをセットアップした後に、「Connect to a secure service with the reverse proxy (リバース プロキシを使用したセキュリティで保護されたサービスへの接続)」をご覧ください。For HTTPS forwarding, refer to Connect to a secure service with the reverse proxy once you have reverse proxy setup to listen on HTTPS.
  • Cluster FQDN (完全修飾ドメイン名) | internal IP: 外部クライアントの場合、クラスターのドメイン (例: mycluster.eastus.cloudapp.azure.com) を介して到達できるようにリバース プロキシを構成できます。既定では、リバース プロキシはすべてのノードで実行されます。Cluster fully qualified domain name (FQDN) | internal IP: For external clients, you can configure the reverse proxy so that it is reachable through the cluster domain, such as mycluster.eastus.cloudapp.azure.com. By default, the reverse proxy runs on every node. 内部トラフィックの場合、リバース プロキシには localhost または任意の内部ノード IP (例: 10.0.0.1) で到達できます。For internal traffic, the reverse proxy can be reached on localhost or on any internal node IP, such as 10.0.0.1.
  • Port: リバース プロキシに指定されているポートです (例: 19081)。Port: This is the port, such as 19081, that has been specified for the reverse proxy.
  • ServiceInstanceName: "fabric:/" スキームなしで到達しようとしているデプロイ済みのサービス インスタンスの完全修飾名です。ServiceInstanceName: This is the fully-qualified name of the deployed service instance that you are trying to reach without the "fabric:/" scheme. たとえば、fabric:/myapp/myservice/ サービスに到達するには、myapp/myservice を使用します。For example, to reach the fabric:/myapp/myservice/ service, you would use myapp/myservice.

    サービス インスタンス名は、大文字小文字が区別されます。The service instance name is case-sensitive. URL のサービス インスタンス名に使用されている大文字小文字が異なる場合、要求は 404 (Not Found) で失敗します。Using a different casing for the service instance name in the URL causes the requests to fail with 404 (Not Found).

  • Suffix path: 接続先となるサービスの実際の URL パスです (例: myapi/values/add/3)。Suffix path: This is the actual URL path, such as myapi/values/add/3, for the service that you want to connect to.
  • PartitionKey: パーティション分割されたサービスの場合、到達するパーティションの計算済みのパーティション キーです。PartitionKey: For a partitioned service, this is the computed partition key of the partition that you want to reach. これはパーティション ID の GUID ではありませんNote that this is not the partition ID GUID. シングルトン パーティション構成を使用するサービスでは、このパラメーターは不要です。This parameter is not required for services that use the singleton partition scheme.
  • PartitionKind: サービス パーティション構成です。PartitionKind: This is the service partition scheme. これには、"Int64Range" または "Named" を指定できます。This can be 'Int64Range' or 'Named'. シングルトン パーティション構成を使用するサービスでは、このパラメーターは不要です。This parameter is not required for services that use the singleton partition scheme.
  • ListenerName: サービスのエンドポイント。{"Endpoints":{"Listener1":"Endpoint1","Listener2":"Endpoint2" ...}} の形式で指定します。ListenerName The endpoints from the service are of the form {"Endpoints":{"Listener1":"Endpoint1","Listener2":"Endpoint2" ...}}. サービスが複数のエンドポイントを公開している場合、このパラメーターによって、クライアント要求の転送先となるエンドポイントを特定します。When the service exposes multiple endpoints, this identifies the endpoint that the client request should be forwarded to. サービスにリスナーが 1 つしかない場合、このパラメーターは省略できます。This can be omitted if the service has only one listener.
  • TargetReplicaSelector: ターゲット レプリカまたはインスタンスの選択方法を指定します。TargetReplicaSelector This specifies how the target replica or instance should be selected.
    • ターゲット サービスがステートフルの場合、TargetReplicaSelector には "PrimaryReplica"、"RandomSecondaryReplica"、"RandomReplica" のいずれかを指定できます。When the target service is stateful, the TargetReplicaSelector can be one of the following: 'PrimaryReplica', 'RandomSecondaryReplica', or 'RandomReplica'. このパラメーターが指定されていない場合、既定値は "PrimaryReplica" です。When this parameter is not specified, the default is 'PrimaryReplica'.
    • ターゲット サービスがステートレスの場合、リバース プロキシは要求の転送先となるサービス パーティションのインスタンスをランダムに選択します。When the target service is stateless, reverse proxy picks a random instance of the service partition to forward the request to.
  • Timeout: クライアント要求の代わりに、リバース プロキシによって作成される、サービスに対する HTTP 要求のタイムアウトを指定します。Timeout: This specifies the timeout for the HTTP request created by the reverse proxy to the service on behalf of the client request. 既定値は 60 秒です。The default value is 60 seconds. これは省略可能なパラメーターです。This is an optional parameter.

使用例Example usage

例として、次の URL で HTTP リスナーを開く fabric:/MyApp/MyService サービスを取得します。As an example, let's take the fabric:/MyApp/MyService service that opens an HTTP listener on the following URL:

http://10.0.0.5:10592/3f0d39ad-924b-4233-b4a7-02617c6308a6-130834621071472715/

サービスのリソースは次のとおりです。Following are the resources for the service:

  • /index.html
  • /api/users/<userId>

サービスがシングルトン パーティション構成を使用している場合、PartitionKey および PartitionKind クエリ文字列パラメーターは不要であり、次のようにゲートウェイを使用してサービスに到達できます。If the service uses the singleton partitioning scheme, the PartitionKey and PartitionKind query string parameters are not required, and the service can be reached by using the gateway as:

  • 外部: http://mycluster.eastus.cloudapp.azure.com:19081/MyApp/MyServiceExternally: http://mycluster.eastus.cloudapp.azure.com:19081/MyApp/MyService
  • 内部: http://localhost:19081/MyApp/MyServiceInternally: http://localhost:19081/MyApp/MyService

サービスが Uniform Int64 パーティション構成を使用している場合、サービスのパーティションにアクセスするには、PartitionKey および PartitionKind クエリ文字列パラメーターを使用する必要があります。If the service uses the Uniform Int64 partitioning scheme, the PartitionKey and PartitionKind query string parameters must be used to reach a partition of the service:

  • 外部: http://mycluster.eastus.cloudapp.azure.com:19081/MyApp/MyService?PartitionKey=3&PartitionKind=Int64RangeExternally: http://mycluster.eastus.cloudapp.azure.com:19081/MyApp/MyService?PartitionKey=3&PartitionKind=Int64Range
  • 内部: http://localhost:19081/MyApp/MyService?PartitionKey=3&PartitionKind=Int64RangeInternally: http://localhost:19081/MyApp/MyService?PartitionKey=3&PartitionKind=Int64Range

サービスが公開するリソースに到達するには、URL のサービス名の後にリソース パスを配置します。To reach the resources that the service exposes, simply place the resource path after the service name in the URL:

  • 外部: http://mycluster.eastus.cloudapp.azure.com:19081/MyApp/MyService/index.html?PartitionKey=3&PartitionKind=Int64RangeExternally: http://mycluster.eastus.cloudapp.azure.com:19081/MyApp/MyService/index.html?PartitionKey=3&PartitionKind=Int64Range
  • 内部: http://localhost:19081/MyApp/MyService/api/users/6?PartitionKey=3&PartitionKind=Int64RangeInternally: http://localhost:19081/MyApp/MyService/api/users/6?PartitionKey=3&PartitionKind=Int64Range

ゲートウェイは、サービスの URL にこれらの要求を転送します。The gateway will then forward these requests to the service's URL:

  • http://10.0.0.5:10592/3f0d39ad-924b-4233-b4a7-02617c6308a6-130834621071472715/index.html
  • http://10.0.0.5:10592/3f0d39ad-924b-4233-b4a7-02617c6308a6-130834621071472715/api/users/6

ポートを共有するサービスの特別な処理Special handling for port-sharing services

サービスに到達できない場合、Service Fabric リバース プロキシはサービス アドレスの解決を再度試み、要求を再試行します。The Service Fabric reverse proxy attempts to resolve a service address again and retry the request when a service cannot be reached. 一般に、サービスに到達できないときは、サービス インスタンスまたはレプリカが通常のライフサイクルの一環として別のノードに移動しています。Generally, when a service cannot be reached, the service instance or replica has moved to a different node as part of its normal lifecycle. この場合、リバース プロキシは、エンドポイントが解決された元のアドレスではもう開いていないことを示すネットワーク接続エラーを受信する可能性があります。When this happens, the reverse proxy might receive a network connection error indicating that an endpoint is no longer open on the originally resolved address.

ただし、レプリカまたはサービス インスタンスはホスト プロセスを共有できます。また、次のような http.sys ベースの Web サーバーによってホストされているときには、ポートを共有している場合もあります。However, replicas or service instances can share a host process and might also share a port when hosted by an http.sys-based web server, including:

この状況では、Web サーバーはホスト プロセスで要求に応答することができますが、解決されたサービス インスタンスまたはレプリカはホストで使用できなくなっています。In this situation, it is likely that the web server is available in the host process and responding to requests, but the resolved service instance or replica is no longer available on the host. この場合、ゲートウェイは Web サーバーから HTTP 404 応答を受信します。In this case, the gateway will receive an HTTP 404 response from the web server. そのため、HTTP 404 応答は 2 つの異なる意味を持つ可能性があります。Thus, an HTTP 404 response can have two distinct meanings:

  • ケース 1: サービス アドレスは正しいが、ユーザーから要求されたリソースが存在しない。Case #1: The service address is correct, but the resource that the user requested does not exist.
  • ケース 2: サービス アドレスが間違っており、ユーザーから要求されたリソースが、実際には別のノードに存在する可能性がある。Case #2: The service address is incorrect, and the resource that the user requested might exist on a different node.

最初のケースは通常の HTTP 404 であり、ユーザー エラーと見なされます。The first case is a normal HTTP 404, which is considered a user error. ただし、2 番目のケースでは、ユーザーは存在するリソースを要求しています。However, in the second case, the user has requested a resource that does exist. サービス自体が移動しているため、リバース プロキシがリソースを見つけることができませんでした。The reverse proxy was unable to locate it because the service itself has moved. この場合、リバース プロキシはアドレスを再度解決し、要求を再試行する必要があります。The reverse proxy needs to resolve the address again and retry the request.

そのため、リバース プロキシにはこの2つのケースを区別する手段が必要です。The reverse proxy thus needs a way to distinguish between these two cases. この区別を行うには、サーバーからのヒントが必要になります。To make that distinction, a hint from the server is required.

  • 既定では、リバース プロキシはケース 2 を想定し、アドレスを再度解決して要求を再発行することを試みます。By default, the reverse proxy assumes case #2 and attempts to resolve and issue the request again.
  • リバース プロキシにケース 1 であることを示すには、サービスが次の HTTP 応答ヘッダーを返す必要があります。To indicate case #1 to the reverse proxy, the service should return the following HTTP response header:

    X-ServiceFabric : ResourceNotFound

この HTTP 応答ヘッダーは、要求されたリソースが存在しないという通常の HTTP 404 の状況を示すので、リバース プロキシはサービス アドレスの解決を再度試みることはなくなります。This HTTP response header indicates a normal HTTP 404 situation in which the requested resource does not exist, and the reverse proxy will not attempt to resolve the service address again.

セットアップと構成Setup and configuration

Azure Portal でリバース プロキシを有効にするEnable reverse proxy via Azure portal

Azure Portal には、新しい Service Fabric クラスターを作成するときに、リバース プロキシを有効にするオプションがあります。Azure portal provides an option to enable Reverse proxy while creating a new Service Fabric cluster. [Service Fabric クラスターの作成] の [手順 2: クラスター構成] の [ノード タイプの構成] で、[リバース プロキシを有効にする] チェックボックスをオンにします。Under Create Service Fabric cluster, Step 2: Cluster Configuration, Node type configuration, select the checkbox to "Enable reverse proxy". セキュリティで保護されたリバース プロキシを構成するには、[手順 3: セキュリティ] の[クラスターのセキュリティ設定の構成] で SSL 証明書を指定し、[リバース プロキシの SSL 証明書を含める] チェックボックスをオンにして、証明書の詳細を入力します。For configuring secure reverse proxy, SSL certificate can be specified in Step 3: Security, Configure cluster security settings, select the checkbox to "Include a SSL certificate for reverse proxy" and enter the certificate details.

Azure Resource Manager テンプレートでリバース プロキシを有効にするEnable reverse proxy via Azure Resource Manager templates

Azure Resource Manager テンプレートを使用して、クラスターで Service Fabric のリバース プロキシを有効にすることができます。You can use the Azure Resource Manager template to enable the reverse proxy in Service Fabric for the cluster.

証明書を使用してセキュリティで保護されたリバース プロキシを構成する Azure Resource Manager テンプレートのサンプルと、証明書のロールオーバーの処理については、「Configure HTTPS Reverse Proxy in a secure cluster (セキュリティで保護されたクラスターで HTTPS リバース プロキシを構成する)」をご覧ください。Refer to Configure HTTPS Reverse Proxy in a secure cluster for Azure Resource Manager template samples to configure secure reverse proxy with a certificate and handling certificate rollover.

まず、デプロイするクラスター用テンプレートを用意します。First, you get the template for the cluster that you want to deploy. サンプル テンプレートを使用することも、カスタムの Resource Manager テンプレートを作成することもできます。You can either use the sample templates or create a custom Resource Manager template. テンプレートを用意したら、次の手順に従ってリバース プロキシを有効にすることができます。Then, you can enable the reverse proxy by using the following steps:

  1. テンプレートの Parameters セクション で、リバース プロキシのポートを定義します。Define a port for the reverse proxy in the Parameters section of the template.

    "SFReverseProxyPort": {
        "type": "int",
        "defaultValue": 19081,
        "metadata": {
            "description": "Endpoint for Service Fabric Reverse proxy"
        }
    },
    
  2. クラスターresources の type セクションで、nodeType オブジェクトごとにポートを指定します。Specify the port for each of the nodetype objects in the Cluster Resource type section.

    ポートは、reverseProxyEndpointPort というパラメーター名で識別されます。The port is identified by the parameter name, reverseProxyEndpointPort.

    {
        "apiVersion": "2016-09-01",
        "type": "Microsoft.ServiceFabric/clusters",
        "name": "[parameters('clusterName')]",
        "location": "[parameters('clusterLocation')]",
        ...
       "nodeTypes": [
          {
           ...
           "reverseProxyEndpointPort": "[parameters('SFReverseProxyPort')]",
           ...
          },
        ...
        ],
        ...
    }
    
  3. Azure クラスターの外部からリバース プロキシのアドレス指定を行うには、手順 1. で指定したポートの Azure Load Balancer 規則を設定します。To address the reverse proxy from outside the Azure cluster, set up the Azure Load Balancer rules for the port that you specified in step 1.

    {
        "apiVersion": "[variables('lbApiVersion')]",
        "type": "Microsoft.Network/loadBalancers",
        ...
        ...
        "loadBalancingRules": [
            ...
            {
                "name": "LBSFReverseProxyRule",
                "properties": {
                    "backendAddressPool": {
                        "id": "[variables('lbPoolID0')]"
                    },
                    "backendPort": "[parameters('SFReverseProxyPort')]",
                    "enableFloatingIP": "false",
                    "frontendIPConfiguration": {
                        "id": "[variables('lbIPConfig0')]"
                    },
                    "frontendPort": "[parameters('SFReverseProxyPort')]",
                    "idleTimeoutInMinutes": "5",
                    "probe": {
                        "id": "[concat(variables('lbID0'),'/probes/SFReverseProxyProbe')]"
                    },
                    "protocol": "tcp"
                }
            }
        ],
        "probes": [
            ...
            {
                "name": "SFReverseProxyProbe",
                "properties": {
                    "intervalInSeconds": 5,
                    "numberOfProbes": 2,
                    "port":     "[parameters('SFReverseProxyPort')]",
                    "protocol": "tcp"
                }
            }  
        ]
    }
    
  4. リバース プロキシのポートで SSL 証明書を構成するには、クラスターresources の type セクションreverseProxyCertificate プロパティに証明書を追加します。To configure SSL certificates on the port for the reverse proxy, add the certificate to the reverseProxyCertificate property in the Cluster Resource type section.

    {
        "apiVersion": "2016-09-01",
        "type": "Microsoft.ServiceFabric/clusters",
        "name": "[parameters('clusterName')]",
        "location": "[parameters('clusterLocation')]",
        "dependsOn": [
            "[concat('Microsoft.Storage/storageAccounts/', parameters('supportLogStorageAccountName'))]"
        ],
        "properties": {
            ...
            "reverseProxyCertificate": {
                "thumbprint": "[parameters('sfReverseProxyCertificateThumbprint')]",
                "x509StoreName": "[parameters('sfReverseProxyCertificateStoreName')]"
            },
            ...
            "clusterState": "Default",
        }
    }
    

クラスター証明書とは異なるリバース プロキシ証明書のサポートSupporting a reverse proxy certificate that's different from the cluster certificate

リバース プロキシ証明書が、クラスターをセキュリティで保護する証明書とは異なる場合、前に指定した証明書を仮想マシンにインストールし、Service Fabric がアクセスできるようにアクセス制御リスト (ACL) に追加する必要があります。If the reverse proxy certificate is different from the certificate that secures the cluster, then the previously specified certificate should be installed on the virtual machine and added to the access control list (ACL) so that Service Fabric can access it. これは、resources の type セクションvirtualMachineScaleSets で実行できます。This can be done in the virtualMachineScaleSets Resource type section. インストールで、その証明書を osProfile に追加します。For installation, add that certificate to the osProfile. テンプレートの extensions セクションで、ACL 内の証明書を更新できます。The extension section of the template can update the certificate in the ACL.

{
  "apiVersion": "[variables('vmssApiVersion')]",
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  ....
    "osProfile": {
        "adminPassword": "[parameters('adminPassword')]",
        "adminUsername": "[parameters('adminUsername')]",
        "computernamePrefix": "[parameters('vmNodeType0Name')]",
        "secrets": [
          {
            "sourceVault": {
              "id": "[parameters('sfReverseProxySourceVaultValue')]"
            },
            "vaultCertificates": [
              {
                "certificateStore": "[parameters('sfReverseProxyCertificateStoreValue')]",
                "certificateUrl": "[parameters('sfReverseProxyCertificateUrlValue')]"
              }
            ]
          }
        ]
      }
 ....
 "extensions": [
        {
            "name": "[concat(parameters('vmNodeType0Name'),'_ServiceFabricNode')]",
            "properties": {
                    "type": "ServiceFabricNode",
                    "autoUpgradeMinorVersion": false,
                    ...
                    "publisher": "Microsoft.Azure.ServiceFabric",
                    "settings": {
                      "clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]",
                      "nodeTypeRef": "[parameters('vmNodeType0Name')]",
                      "dataPath": "D:\\\\SvcFab",
                      "durabilityLevel": "Bronze",
                      "testExtension": true,
                      "reverseProxyCertificate": {
                        "thumbprint": "[parameters('sfReverseProxyCertificateThumbprint')]",
                        "x509StoreName": "[parameters('sfReverseProxyCertificateStoreValue')]"
                      },
                },
                "typeHandlerVersion": "1.0"
            }
        },
    ]
  }

注意

既存のクラスターで、クラスター証明書とは異なる証明書を使用してリバース プロキシを有効にするときは、リバース プロキシを有効にする前に、クラスターにリバース プロキシ証明書をインストールし、ACL を更新する必要があります。When you use certificates that are different from the cluster certificate to enable the reverse proxy on an existing cluster, install the reverse proxy certificate and update the ACL on the cluster before you enable the reverse proxy. 手順 1. ~ 4. に従ってリバース プロキシを有効にするデプロイを開始する前に、前述の設定を使用して Azure Resource Manager テンプレートのデプロイを完了しておきます。Complete the Azure Resource Manager template deployment by using the settings mentioned previously before you start a deployment to enable the reverse proxy in steps 1-4.

次のステップNext steps