こんにちは、インフラエンジニアのryuです。
今回の記事は、TerraformでApplicationInsightsを連携させる方法を解説します。TerraformでAppServiceを作成した際、ApplicationInsightsを同時に連携させたいですよね。方法は、簡単で、AppServiceの構成に ApplicationInsightsの情報を入れれば、連携できます。設定方法を詳しく解説していきます。
目次
TerraformでApplicationInsightsを連携させる方法
連携させる方法は、AppServiceの構成にApplicationInsightsの情報を入れれば連携できます。↓の画面の部分です。
GUIからApplicationInsightsを有効にした場合、これらの情報はすべて、自動で生成されます。この自動で生成された情報をTerraformにて、自動生成されるようにすれば連携が可能です。
では、早速、手順の解説を行います。
ApplicationInsightsを連携させる手順
今回は、WebAppにApplicationInsightsを連携させます。ApplicationInsightsでは、Webの監視をすることができます。
手順①.Terraformの初期設定
AzureでTerraformを使用するには、初期設定が必要です。初期設定方法は、こちらの記事で解説しているので、参考にしてください。
手順②.ApplicationInsightsの作成コードを作る
次に、ApplicationInsightsの作成コードを作ります。Terraformの公式サイトより、 ApplicationInsightsの設定をコピーします。
data "azurerm_application_insights" "insights" {
name = "test-insights"
resource_group_name = "${azurerm_resource_group.example.name}"
}
“resource_group_name”は自分の環境に合わせましょう。
手順③.WebAppの作成コードを作る
ApplicationInsights同様、Webappの作成コードを作ります。Terraformの公式サイトより、 Webappの設定をコピーします。 リソースグループの作成コードもここからコピーしましょう。コードは以下のようになります。
resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "Japan West"
}
resource "azurerm_app_service_plan" "example" {
name = "example-appserviceplan"
location = "${azurerm_resource_group.example.location}"
resource_group_name = "${azurerm_resource_group.example.name}"
sku {
tier = "Standard"
size = "S1"
}
}
resource "azurerm_app_service" "example" {
name = "exampletest-app-service" #Webappの名前は自分で決める
location = "${azurerm_resource_group.example.location}"
resource_group_name = "${azurerm_resource_group.example.name}"
app_service_plan_id = "${azurerm_app_service_plan.example.id}"
site_config {
}
app_settings = {
}
}
手順④. ApplicationInsightsの情報をWebappに入力
冒頭でも記載しましたが、ApplicationInsightsを連携させるためには、WebAppの構成設定にApplicationInsightsの情報を入力する必要があります。
WebAppの作成コードのapp_settingsに情報を入力していきます。
app_settings = {
"APPINSIGHTS_INSTRUMENTATIONKEY" =
"${data.azurerm_application_insights.example.instrumentation_key}"
"APPINSIGHTS_PROFILERFEATURE_VERSION" = "1.0.0"
"APPINSIGHTS_SNAPSHOTFEATURE_VERSION" = "1.0.0"
"ApplicationInsightsAgent_EXTENSION_VERSION" = "~2"
}
これで、Teraformで作成すれば、自動で連携できます。以上で手順の解説を終わります。
さいごに
今回の記事は、TerraformでApplicationInsightsを連携させる方法を解説しました。Terraformの公式ページは英語のみで設定値しか説明がありません。Azureの連携を行うには、いろいろと試してみるしかありません。Terraformをやってみて有益な情報があったら、ブログにどんどんアップしていこうと思います。