接続文字列

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

概要

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

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

注意

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

接続文字列とインストルメンテーション キーを同時に使用しないでください。 最後に設定した方が優先されます。

シナリオの概要

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

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

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

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

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

はじめに

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

接続文字列を見つける

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

Application Insights の概要と接続文字列を示すスクリーンショット。

スキーマ

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

最大長

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

キー/値ペア

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

構文

  • InstrumentationKey (例: 00000000-0000-0000-0000-000000000000)。 接続文字列は"必須" フィールドです。
  • Authorization (例: ikey)。 現時点では ikey 認証のみがサポートされているため、この設定は省略可能です。
  • EndpointSuffix (例: applicationinsights.azure.cn)。 エンドポイント サフィックスを設定すると、接続先の Azure クラウドが SDK に指示されます。 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 リソースに関連付けるために使う一意の識別子です。 これは、セキュリティ トークンまたはキーとは見なされません。 AI リソースを誤用から保護する場合、インジェスト エンドポイントには Azure Active Directory (Azure AD) ベースの認証済みテレメトリ インジェスト オプションが用意されています。

注意

Application Insights JavaScript SDK を使うには、初期化と構成時に接続文字列を渡す必要があります。 これは、クライアント ブラウザーでプレーン テキストとして確認できます。 ブラウザー テレメトリに Azure AD ベースの認証を使う簡単な方法はありません。 サービス テレメトリをセキュリティで保護する必要がある場合は、ブラウザー テレメトリ用に別の 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

コード サンプル

プロパティ TelemetryConfiguration.ConnectionString または ApplicationInsightsServiceOptions.ConnectionString を設定します。

.NET の明示的な設定:

var configuration = new TelemetryConfiguration
{
    ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;"
};

.NET 構成ファイル:

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
    <ConnectionString>InstrumentationKey=00000000-0000-0000-0000-000000000000</ConnectionString>
</ApplicationInsights>

.NET Core の明示的な設定:

public void ConfigureServices(IServiceCollection services)
{
    var options = new ApplicationInsightsServiceOptions { ConnectionString = "InstrumentationKey=00000000-0000-0000-0000-000000000000;" };
    services.AddApplicationInsightsTelemetry(options: options);
}

.NET Core config.json:

{
  "ApplicationInsights": {
    "ConnectionString" : "InstrumentationKey=00000000-0000-0000-0000-000000000000;"
    }
  }

次のステップ

実行時に開始する:

開発時に開始する: