Service Connector の内部構造

Service Connector は、Azure サービス間の接続を簡単に作成および管理する方法を提供するように設計された Azure 拡張リソース プロバイダーです。

Service Connector には、次の機能が用意されています。

  • 1 つの Azure CLI コマンドで Azure サービスを接続するか、Azure portal を使用していくつかの手順で接続できます。
  • クラウド ネイティブ アプリケーションで使用される、ますます増加するデータベース、ストレージ、リアルタイム サービス、状態、シークレット ストアをサポートします。
  • ネットワーク設定と認証を構成し、接続環境変数またはプロパティを自動的に管理します。
  • 接続を検証し、障害のある接続を修正するための提案を示します。

サービス接続の概要

"サービス接続" の概念は、Service Connector のリソース モデルで重要となる概念です。 サービス接続は、2 つのサービス間のリンクの抽象化を表します。 サービス接続には、次のプロパティがあります。

プロパティ 説明
接続名 サービス接続の一意の名前。
ソース サービスの種類 ソース サービスは、通常、Azure コンピューティング サービスです。 これらは、ターゲット サービスに接続できるサービスです。 ソース サービスには、Azure App Service、Azure Container Apps、Azure Spring Apps が含まれます。
ターゲット サービスの種類 ターゲット サービスは、コンピューティング サービスの接続先となるバッキング サービスまたは依存関係サービスです。 Service Connector では、主要なデータベース、ストレージ、リアルタイム サービス、状態、シークレット ストアなど、さまざまなターゲット サービスの種類がサポートされます。
クライアントの種類 クライアントの種類とは、コンピューティング ランタイム スタック、開発フレームワーク、または特定の種類のクライアント ライブラリを意味し、接続環境変数またはプロパティの特定の形式が受け入れられます。
認証の種類 サービス接続で使用される認証の種類。 これには、シークレットまたは接続文字列、マネージド ID、またはサービス プリンシパルを指定できます。

ソース サービスとターゲット サービスでは、複数の同時サービス接続がサポートされます。つまり、各リソースを複数のリソースに接続できます。

Service Connector では、ソース インスタンスのプロパティ内の接続が管理されます。 接続の作成、取得、更新、削除は、Azure portal でソース サービス インスタンスを開くか、ソース サービスの CLI コマンドを使用して直接行います。

接続は、サブスクリプションまたはテナント間で行うことができます。つまり、ソースおよびターゲットのサービスが異なるサブスクリプションまたはテナントに属している可能性があります。 新しいサービス接続を作成すると、既定では、接続リソースはコンピューティング サービス インスタントと同じリージョン内に作成されます。

サービス接続の作成と更新

Service Connector では、次を含むサービス接続の作成または更新中に複数のタスクが実行されます。

  • ネットワークとファイアウォールの設定の構成
  • 接続情報の構成
  • 認証情報の構成
  • 障害が発生した場合の接続ロールバックの作成または更新

このプロセス中に手順が失敗した場合、Service Connector により、前のすべての手順がロールバックされ、ソースおよびターゲットのインスタンスで初期設定が保持されます。

リソース プロバイダー

Microsoft.ServiceLinker は、Service Connector のリソース プロバイダーの名前です。

ユーザーがAzure portalの [Service Connector] タブを開くと、ServiceLinker リソース プロバイダーがユーザーのアクティブなサブスクリプションに自動的に登録されます。 登録を生成したユーザーは、登録イベントのイニシエーターとして一覧表示されます。

Service Connector を使用すると、ユーザーはサブスクリプション間でサービスを接続できます。 ユーザーが別のサブスクリプションに登録されているターゲット サービスへの接続を作成すると、サービス リンカーもターゲット サービスのサブスクリプションに登録されます。 この登録は、最後に接続を作成する前にユーザーが [ 確認と作成 ] タブを選択したときに発生します。

接続の構成

接続構成は、ソース サービスで設定されます。

Azure portal で、ソース サービスを開き、[Service Connector] に移動します。 各接続を展開して、接続の構成を表示します。

サービス接続の詳細を示す Azure portal のスクリーンショット。

CLI では、list-configuration コマンドを使用して、接続の構成を取得します。

az webapp connection list-configuration --resource-group <source-service-resource-group> --name <source-service-name> --connection <connection-name>
az spring connection list-configuration --resource-group <source-service-resource-group> --name <source-service-name> --connection <connection-name>
az containerapp connection list-configuration --resource-group <source-service-resource-group> --name <source-service-name> --connection <connection-name>

構成の名前付け規則

Service Connector では、接続の作成時に接続の構成が設定されます。 環境変数のキーと値のペアは、クライアントの種類と認証の種類によって決まります。 たとえば、Azure SDK とマネージド ID を使用するには、クライアント ID、クライアント シークレットなどが必要です。JDBC ドライバーを使用するには、データベース接続文字列が必要です。 次の規則に従って、構成に名前を付けます。

  • Spring Boot クライアント: 各ターゲット サービスの Spring Boot ライブラリには、独自の名前付け規則があります。 たとえば、MySQL 接続の設定は、spring.datasource.urlspring.datasource.usernamespring.datasource.password になります。 Kafka 接続の設定は、spring.kafka.properties.bootstrap.servers です。

  • その他のクライアント:

    • 最初の接続構成のキー名には、形式 <Cloud>_<Type>_<Name> が使用されます。 たとえば、AZURE_STORAGEBLOB_RESOURCEENDPOINTCONFLUENTCLOUD_KAFKA_BOOTSTRAPSERVER のようになります。
    • ターゲット リソースの種類が同じ場合、2 番目の接続構成のキー名は形式 <Cloud>_<Type>_<Connection Name>_<Name> になります。 たとえば、AZURE_STORAGEBLOB_CONN2_RESOURCEENDPOINTCONFLUENTCLOUD_KAFKA_CONN2_BOOTSTRAPSERVER のようになります。

サービス接続の検証

Service connector では、接続の検証時に次の要素を確認します。

  • ソースおよびターゲットのリソースが存在する。
  • ソース: 正しい接続情報が登録されている。
  • ターゲット: 正しいネットワークとファイアウォールの設定が登録されている。
  • ソースおよびターゲットのリソース: 正しい認証情報が登録されている。

接続の削除

サービス接続が削除されると、接続情報も削除されます。

次のステップ

Service Connector の詳細については、概念に関する以下の記事を参照してください。