Application Insights インストルメンテーション キーから接続文字列への移行
この記事では、インストルメンテーション キーから接続文字列への移行について説明します。
前提条件
移行
Application Insights リソースの [概要] ペインにアクセスしてください。
右側に表示されている接続文字列を見つけます。
接続文字列をポイントし、[クリップボードにコピー] アイコンを選択します。
接続文字列の設定方法に関するページに従って、Application Insights SDK を構成します。
重要
接続文字列とインストルメンテーション キーの両方を使用しないでください。 後者のセットはもう一方のセットよりも優先され、ポータルにテレメトリが表示されない可能性があります。 欠落しているデータに関するページを参照してください。
大規模な移行
環境変数を使用して、Application Insights SDK またはエージェントに接続文字列を渡します。
環境変数を使用して接続文字列を設定するには、接続文字列の値を APPLICATIONINSIGHTS_CONNECTION_STRING
という名前の環境変数に配置します。
このプロセスは、Azure デプロイで自動化することができます。 たとえば、次の Azure Resource Manager テンプレートは、正しい接続文字列を Azure App Service 環境に自動的に含める方法を示しています。 アプリに必要なその他のアプリ設定を必ず含めてください。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"appServiceName": {
"type": "string",
"metadata": {
"description": "Name of the App Services resource"
}
},
"appServiceLocation": {
"type": "string",
"metadata": {
"description": "Location to deploy the App Services resource"
}
},
"appInsightsName": {
"type": "string",
"metadata": {
"description": "Name of the existing Application Insights resource to use with this App Service. Expected to be in the same Resource Group."
}
}
},
"resources": [
{
"apiVersion": "2016-03-01",
"name": "[parameters('appServiceName')]",
"type": "microsoft.web/sites",
"location": "[parameters('appServiceLocation')]",
"properties": {
"siteConfig": {
"appSettings": [
{
"name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
"value": "[reference(concat('microsoft.insights/components/', parameters('appInsightsName')), '2015-05-01').ConnectionString]"
}
]
},
"name": "[parameters('appServiceName')]"
}
}
]
}
新機能
接続文字列では 1 つの構成設定が提供され、複数のプロキシ設定が不要になります。
- 信頼性: 接続文字列では、グローバル インジェスト エンドポイントの依存関係が除去されるので、利用統計情報のインジェストの信頼性が高まります。
- セキュリティ: 接続文字列では、Application Insights の Microsoft Entra 認証を使って、利用統計情報のインジェストを認証できます。
- カスタマイズされたエンドポイント (ソブリンまたはハイブリッド クラウド環境): エンドポイント設定を使用すると、特定の Azure Government リージョンにデータを送信できます。 (次の例を参照してください。)
- プライバシー (リージョンのエンドポイント): 接続文字列では、データはリージョンのエンドポイントに送信され、地理的リージョンの外に流出しないので、プライバシーに関する懸念が軽減されます。
サポートされている SDK バージョン
- .NET および .NET Core v2.12.0 以上
- Java v2.5.1 および Java 3.0 以上
- JavaScript v2.3.0 以上
- NodeJS v1.5.0 以上
- Python v1.0.0 以上
トラブルシューティング
このセクションでは、トラブルシューティングの解決策について説明します。
アラート: "データ インジェストに接続文字列を使用するように移行してください"
このアラートを解決するには、こちらの記事の移行手順に従ってください。
欠落しているデータ
- サポートされている SDK バージョンを使用していることを確認します。 別の Azure 製品オファリングで Application Insights の統合を使用する場合は、そのドキュメントで接続文字列を適切に構成する方法を確認してください。
- インストルメンテーション キーと接続文字列の両方を同時に設定していないことを確認します。 インストルメンテーション キーの設定は、構成から削除する必要があります。
- 接続文字列が Azure portal で指定されているとおりであることを確認します。
環境変数が動作していません
アプリケーション コードでインストルメンテーション キーをハードコーディングする場合は、環境変数よりもプログラミングが優先されることがあります。
よく寄せられる質問
このセクションでは、一般的な質問への回答を示します。
接続文字列は他にどこで確認できますか?
接続文字列は、Application Insights リソースの Resource Manager リソース プロパティのフィールド名 ConnectionString
の下にも含まれています。
これは、自動インストルメンテーションにどのように影響しますか?
自動インストルメンテーションのシナリオには影響ありません。
自動インストルメンテーションで Microsoft Entra 認証を使用できますか?
自動インストルメンテーションのシナリオでは、Microsoft Entra 認証を有効にすることはできません。 今後、この制限に対処する予定です。
グローバルとリージョンのインジェストには、どのような違いがありますか?
グローバル インジェストでは、利用統計情報がどこに格納されるかに関係なく、すべてのデータがすべて 1 つのエンドポイントに送信されます。 リージョン インジェストを使用すると、リージョンごとにデータ インジェストの特定のエンドポイントを定義できます。 この機能により、処理中および保存中にデータを特定のリージョン内に維持することができます。
接続文字列は、課金にどのような影響を与えますか?
課金には影響しません。
Microsoft Q&A
回答フォーラムに質問を投稿します。