既存の Service Fabric クラスターでマネージド ID のサポートを構成する

Service Fabric アプリケーションで Azure リソースのマネージド ID を使用するには、まずクラスターでマネージド ID トークン サービスを有効にします。 このサービスは、マネージド ID を使用して Service Fabric アプリケーションの認証を実行し、アクセス トークンを代理で取得します。 サービスが有効になると、Service Fabric Explorer の左側のウィンドウの [システム] セクションに表示され、fabric:/System/ManagedIdentityTokenService という名前で実行されます。

Note

マネージド ID トークン サービスを有効にするには、Service Fabric ランタイム バージョン 6.5.658.9590 以降が必要です。

クラスターの Service Fabric バージョンを調べるには、Azure portal からクラスター リソースを開き、 [Essentials](基本) セクションで [Service Fabric バージョン] プロパティを確認します。

クラスターが [手動] アップグレード モードの場合、最初に 6.5.658.9590 以降にアップグレードする必要があります。

既存のクラスターで "マネージド ID トークン サービス" を有効にする

既存のクラスターでマネージド ID トークン サービスを有効にするには、2 つの変更を指定してクラスターのアップグレードを開始する必要があります。(1) マネージド ID トークン サービスを有効化し、(2) 各ノードの再起動を要求します。 まず、クラスターの Azure Resource Manager テンプレートに次のスニペットを追加します。

"fabricSettings": [
    {
        "name": "ManagedIdentityTokenService",
        "parameters": [
            {
                "name": "IsEnabled",
                "value": "true"
            }
        ]
    }
]

また、変更を有効にするには、アップグレード ポリシーを変更し、クラスターでアップグレードが進行するのに合わせて各ノードで Service Fabric ランタイムを強制的に再起動するよう指定する必要があります。 この再起動により、新たに有効になったシステム サービスが各ノードで確実に開始および実行されます。 次のスニペットで、forceRestart は、再起動を有効にするための必須の設定です。 残りのパラメーターについては、以下で説明する値を使用するか、またはクラスター リソースに既に使用されている既存のカスタム値を使用します。 ファブリックのアップグレード ポリシー ('upgradeDescription') のカスタム設定は、Azure portal で Service Fabric リソースの [ファブリックのアップグレード] オプションを選択することで表示でき、また resources.azure.com でも表示できます。 アップグレード ポリシー ('upgradeDescription') の既定のオプションは、PowerShell または resources.azure.com では表示できません。 詳細については、「ClusterUpgradePolicy」 を参照してください。

"upgradeDescription": {
    "forceRestart": true,
    "healthCheckRetryTimeout": "00:45:00",
    "healthCheckStableDuration": "00:05:00",
    "healthCheckWaitDuration": "00:05:00",
    "upgradeDomainTimeout": "02:00:00",
    "upgradeReplicaSetCheckTimeout": "1.00:00:00",
    "upgradeTimeout": "12:00:00"
}

注意

アップグレードが正常に完了したら、forceRestart の設定をロールバックすることを忘れないでください。これにより、以降のアップグレードの影響を最小限に抑えることができます。

エラーとトラブルシューティング

デプロイが失敗し、次のメッセージが表示された場合は、十分に新しいバージョンの Service Fabric がクラスターで実行されていないことを意味します。

{
    "code": "ParameterNotAllowed",
    "message": "Section 'ManagedIdentityTokenService' and Parameter 'IsEnabled' is not allowed."
}

次のステップ