接続文字列

この記事では、接続文字列を使用する方法について説明します。

概要

接続文字列は、テレメトリ データの送信先を定義します。

キーと値のペアを使用すると、ユーザーが各 Application Insights サービスまたは製品のプレフィックスとサフィックスの組み合わせを簡単に定義できます。

注意

インストルメンテーション キーのインジェストのサポートは、2025 年 3 月 31 日に終了します。 インストルメンテーション キーのインジェストは引き続き機能しますが、この機能の更新プログラムやサポートは提供されなくなります。 接続文字列に移行することで、新機能をご利用いただけます。

シナリオの概要

この変更の影響を大きく受けるサービス:

  • ファイアウォールの例外またはプロキシのリダイレクト:

    イントラネット Web サーバーの監視が必要な場合、以前のソリューションでは、お使いの構成に個々のサービスエンド ポイントを追加するようにお客様に求めていました。 詳細については、「イントラネット Web サーバーを監視できますか?」 を参照してください。 接続文字列により、この作業の設定が 1 つですみ、より優れた代替方法が提供されます。 プレフィックスとサフィックスを修正するだけで、すべてのエンドポイントを適切なサービスに自動的に設定してリダイレクトすることができます。

  • ソブリン クラウド環境またはハイブリッド クラウド環境:

    ユーザーは、定義された Azure Government リージョンにデータを送信できます。 接続文字列を使用すると、イントラネット サーバーまたはハイブリッド クラウド設定のエンドポイント設定を定義できます。

はじめに

開始するには、次のセクションをご覧ください。

接続文字列を見つける

接続文字列は、Application Insights リソースの [概要] セクションに表示されます。

Screenshot that shows the Application Insights overview and connection string.

[スキーマ]

スキーマ要素については、以下のセクションで説明します。

最大長

接続でサポートされている最大長は 4096 文字です。

キー/値ペア

接続文字列は、キーと値のペアがセミコロンで区切られた設定のリストで構成されます: key1=value1;key2=value2;key3=value3

構文

  • InstrumentationKey (例: 00000000-0000-0000-0000-000000000000)。 InstrumentationKey は "必須" フィールドです。
  • Authorization (例: ikey)。 現時点では ikey 認証のみがサポートされているため、この設定は省略可能です。
  • EndpointSuffix (例: applicationinsights.azure.cn)。 エンドポイント サフィックスを設定すると、SDK に接続先の Azure クラウドが指定されます。 SDK により、個々のサービスに対して残りのエンドポイントが構成されます。
  • 明示的なエンドポイント。 どのサービスも、接続文字列内で明示的にオーバーライドできます:
    • IngestionEndpoint (例: https://dc.applicationinsights.azure.com)
    • LiveEndpoint (例: https://live.applicationinsights.azure.com)
    • ProfilerEndpoint (例: https://profiler.monitor.azure.com)
    • SnapshotEndpoint (例: https://snapshot.monitor.azure.com)

エンドポイント スキーマ

<prefix>.<suffix>

  • プレフィックス:サービスを定義します。
  • サフィックス:共通ドメイン名を定義します。
有効なサフィックス
  • applicationinsights.azure.cn
  • applicationinsights.us

詳細については、「エンドポイントの変更が必要なリージョン」を参照してください。

有効なプレフィックス

接続文字列はシークレットですか?

接続文字列には iKey が含まれています。これは、インジェスト サービスがテレメトリを特定の Application Insights リソースに関連付けるために使う一意の識別子です。 これらの ikey 一意識別子は、セキュリティ トークンやセキュリティ キーではありません。 AI リソースを不正使用から保護する場合、インジェスト エンドポイントには Microsoft Entra ID に基づく認証付きのテレメトリ インジェスト オプションが用意されています。

Note

Application Insights JavaScript SDK を使うには、初期化と構成時に接続文字列を渡す必要があります。 これは、クライアント ブラウザーでプレーン テキストとして確認できます。 ブラウザー テレメトリに Microsoft Entra ID ベースの認証を使う簡単な方法はありません。 サービス テレメトリをセキュリティで保護する必要がある場合は、ブラウザー テレメトリ用に別の Application Insights リソースを作成するように検討することをお勧めします。

接続文字列の例

さまざまな接続文字列の例を次に示します。

エンドポイント サフィックスが付いた接続文字列

InstrumentationKey=00000000-0000-0000-0000-000000000000;EndpointSuffix=ai.contoso.com;

この例では、接続文字列でエンドポイント サフィックスが指定され、SDK によってサービス エンドポイントが構成されます。

  • 認証方式の既定値は "ikey" です
  • インストルメンテーション キー: 00000000-0000-0000-0000-000000000000
  • リージョン サービスの URI は、指定されたエンドポイント サフィックスに基づきます。
    • インジェスト: https://dc.ai.contoso.com
    • Live Metrics: https://live.ai.contoso.com
    • Profiler: https://profiler.ai.contoso.com
    • デバッガー: https://snapshot.ai.contoso.com

明示的なエンドポイント オーバーライドを含む接続文字列

InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://custom.com:111/;LiveEndpoint=https://custom.com:222/;ProfilerEndpoint=https://custom.com:333/;SnapshotEndpoint=https://custom.com:444/;

この例では、この接続文字列によって、すべてのサービスに明示的なオーバーライドが指定されています。 SDK により、提供された正確なエンドポイントがそのまま使用されます。

  • 認証方式の既定値は "ikey" です
  • インストルメンテーション キー: 00000000-0000-0000-0000-000000000000
  • リージョン サービスの URI は、明示的なオーバーライド値に基づきます。
    • インジェスト: https://custom.com:111/
    • Live Metrics: https://custom.com:222/
    • Profiler: https://custom.com:333/
    • デバッガー: https://custom.com:444/

明示的なリージョンを含む接続文字列

InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://southcentralus.in.applicationinsights.azure.com/

この例では、接続文字列によって米国中南部リージョンが指定されています。

  • 認証方式の既定値は "ikey" です
  • インストルメンテーション キー: 00000000-0000-0000-0000-000000000000
  • リージョン サービスの URI は、明示的なオーバーライド値に基づきます。
    • インジェスト: https://southcentralus.in.applicationinsights.azure.com/

Azure CLI で次のコマンドを実行して、使用可能なリージョンを一覧表示します。

az account list-locations -o table

接続文字列を設定する

接続文字列は、次の SDK バージョンでサポートされています:

  • .NET v2.12.0
  • Java v2.5.1 および Java 3.0
  • JavaScript v2.3.0
  • NodeJS v1.5.0
  • Python v1.0.0

接続文字列は、コードで設定するか、環境変数または構成ファイルを使用して設定できます。

環境変数

接続文字列: APPLICATIONINSIGHTS_CONNECTION_STRING

コード サンプル

  1. appsettings.json ファイルに接続文字列を設定します。

    {
      "ApplicationInsights": {
        "ConnectionString" : "InstrumentationKey=00000000-0000-0000-0000-000000000000;IngestionEndpoint=https://{region}.in.applicationinsights.azure.com/;LiveEndpoint=https://{region}.livediagnostics.monitor.azure.com/"
        }
    }
    
  2. ApplicationInsightsTelemetry サービスを登録するときに Program.cs で接続文字列を取得します。

    var options = new ApplicationInsightsServiceOptions { ConnectionString = app.Configuration["ApplicationInsights:ConnectionString"] };
    builder.Services.AddApplicationInsightsTelemetry(options: options);
    

よく寄せられる質問

このセクションでは、一般的な質問への回答を示します。

新しい Azure リージョンでは、接続文字列を使用する必要がありますか。

新しい Azure リージョンでは、インストルメンテーション キーの代わりに接続文字列を使用する必要があります。 接続文字列により、テレメトリ データと関連付けるリソースが識別されます。 また、リソースでテレメトリの宛先として使用するエンドポイントを変更することもできます。 接続文字列をコピーし、アプリケーションのコードまたは環境変数に追加してください。

接続文字列またはインストルメンテーション キーを使用する必要はありますか?

インストルメンテーション キーの代わりに、接続文字列を使用することをお勧めします。

次のステップ

実行時に開始する:

開発時に開始する: