[解決済み] カンマ区切りの文字列を分割する
質問
複数の値を持つカンマ区切りの文字列が出力されます。
input.tf
resource "azurerm_app_service" "testap" {
name = "MySuperCoolAppServer001"
location = "eastus"
resource_group_name = "notshown"
app_service_plan_id = "notshown"
}
出力.tf
output "output_tf_testap_outbound_ip_addresses" {
value = "${azurerm_app_service.testap.outbound_ip_addresses}"
}
そして、コンソールにこのように表示されます。
出力_tf_testap_outbound_ip_addresses =。 1.2.3.4,1.2.3.5,1.2.3.6,1.2.3.7,1.2.3.8,1.2.3.9
リストの最初の項目を取得するにはどうすればよいですか? この場合、値を切り分けたいのですが。
1.2.3.4
実行前にアイテムの総数がわからない場合に、すべてのアイテムの "コレクション" を取得する方法はありますか?(上のリストには6つの項目があります)。
以下のコードではうまくいかないようです。
output "first_ip" {
value = ["${azurerm_app_service.testap.outbound_ip_addresses[0]}"]
}
=========================================================================== 付加情報
first_ip_no_indexは動作するが、first_ipは動作しない。
output "first_ip_no_index" {
value = ["${split(",", azurerm_app_service.tf_middle_tier_azurerm_app_service.outbound_ip_addresses)}"]
}
output "first_ip" {
value = "${split(",", azurerm_app_service.tf_middle_tier_azurerm_app_service.outbound_ip_addresses)[0]}"
}
first_ipがこのエラーを発生させました。
Error reading config for output first_ip: parse error at 1:91: expected "}" but found "["
解決方法は?
を使用することができます。
split()
機能
を使って、文字列をリストに分割することができます。
output "output_tf_testap_outbound_ip_addresses" {
value = ["${split(",", azurerm_app_service.testap.outbound_ip_addresses)}"]
}
その後で、インデックスを作成するために
element(list, index)
構文
:
output "first_ip" {
value = "${element(split(",", azurerm_app_service.testap.outbound_ip_addresses), 0}"
}
また、通常は
list\[index\]
構文
このように
output "first_ip" {
value = "${split(",", azurerm_app_service.testap.outbound_ip_addresses)[0]}"
}
しかし、Terraform 0.11にはバグがあるようで、このバグによって
split
関数を使用すると、次のようなエラーが発生します。
エラーです。Error loading /tmp/tf-split-test/main.tf: 設定読み込みエラー for output foo: parse error at 1:25: expected "}" but found "["
を使用することができます。
local
を使用してリストを分割し、それをスライスすることで、この問題を回避できます。
element
関数を使用します。
locals {
outbound_ip_addresses_list = "${split(",", azurerm_app_service.testap.outbound_ip_addresses)}"
}
output "first_ip" {
value = "${local.outbound_ip_addresses_list[0]}"
}
関連
-
[解決済み] AzureWebJobsDashboardの接続文字列情報はどこで手に入りますか?
-
[解決済み] カンマ区切りの文字列を分割する
-
[解決済み] レガシーAzure MFAをPhoneFactorで使用すると、エラー149が発生します。
-
[解決済み] Connect-AzAccount - azureのデバイス認証を回避する方法は?
-
[解決済み] Azure Resource Groupの名前を変更するにはどうすればよいですか?
-
[解決済み] Azure Service Principalとは何ですか?
-
[解決済み] Azure Cloud Shell で Set-AzContext が動作するが、Azure PowerShell では動作しない。
-
[解決済み] Azure Cli サブスクリプションのデフォルトを変更する方法
-
[解決済み】Azure Web SiteとAzure Web Roleの違いは何ですか?
-
[解決済み] Azure Blob StorageとFile Serviceの比較【終了しました】。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Azureウェブサイトのメッセージ「このディレクトリまたはページを表示する権限がありません。どうすればいい?
-
[解決済み] Azure Kubernetes "az aks get-credentials "コマンドの実行時のエラーについて
-
[解決済み] New-AzureRmResourceGroupDeployment コマンドレットで追加のパラメータを渡す方法
-
[解決済み] Set-AzStorageBlobContentを使用して、プロンプトなしで新しいコンテンツのみをアップロードする。
-
[解決済み] Azure Cli サブスクリプションのデフォルトを変更する方法
-
[解決済み] Terraformのdepends_onとモジュール
-
[解決済み】Azure WebjobsとAzure Functionsの比較:選び方
-
[解決済み] リースされたブロブを含むAzureストレージアカウントを削除するにはどうすればよいですか?
-
[解決済み] Azureです。Azureにデプロイされたファイルを表示する方法はありますか?
-
[解決済み] Azure SQL データベース Bacpac ローカルリストア