Service Connector の既知の制限事項
この記事では、Service Connector の既存の制限事項とそれらの軽減方法について説明します。
コードとしてのインフラストラクチャ (IaC) の制限事項
サービス コネクタは、可能な限り多くの Azure サービスに、簡単かつ安全で一貫性のあるバッキング サービス接続の利点を提供するように設計されています。 それを行うために、サービス コネクタは拡張リソース プロバイダーとして開発されました。
サービス コネクタはユーザーに代わってインフラストラクチャを変更するため、IaC のサポートにはいくつかの制限があります。 このシナリオでは、ユーザーはまず Azure Resource Manager (ARM)、Bicep、Terraform、またはその他の IaC テンプレートを使用してリソースを作成します。 その後、サービス コネクタを使用してリソース接続を設定します。 この手順の間に、Service Connector によりユーザーに代わってリソース構成が変更されます。 ユーザーが後で IaC テンプレートを再実行すると、サービス コネクタによって行われた変更は、元の IaC テンプレートに反映されていないため、消失します。 この動作の例として、ARM テンプレートを使用してデプロイされた Azure Container Apps リソースでは、通常、マネージド ID 認証は既定で無効になっていますが、 サービス コネクタでは、接続の設定時に、ユーザーに代わってマネージド ID を有効にします。 ユーザーがマネージド ID の設定を更新しないで同じ ARM テンプレートをトリガーすると、再デプロイされた Azure Container Apps リソースでマネージド ID が再度無効になります。
Service Connector の使用時に何らかの問題が発生した場合は、問題を報告してください。
ソリューション
次の解決策をお勧めします。
- インフラストラクチャを構築したり、既存のインフラストラクチャを IaC テンプレートに変換したりするには、IaC ツールで接続を構築する方法に関するページを参照してください。
- CI/CD パイプラインにソース コンピューティングまたはバッキング サービスのテンプレートが含まれている場合、テンプレートを再適用し、アプリケーションが稼働していることを確認するためのサニティ チェックまたはスモーク テストを追加し、アプリケーションへのライブ トラフィックを許可することをお勧めします。 フローでは、ライブ トラフィックを許可する前に検証手順を追加します。
- Service Connector を使用して Azure Container App コードのデプロイを自動化する場合は、Service Connector によって接続が再適用される前に、一時的に機能しないアプリにトラフィックがルーティングされないように、複数リビジョン モードを使用することをお勧めします。
- 自動化操作の実行順序は重要です。 接続自体が作成される前に、接続エンドポイントがあることを確認します。 理想的には、バッキング サービス、次にコンピューティング サービス、次に両者間の接続を作成します。 この方法で、Service Connector では、コンピューティング サービスとバッキング サービスの両方を適切に構成できます。