🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Terraform

Terraformは、インフラ構築のためのツールです。AWS/DigitalOcean/GoogleCloudといった様々なインフラに対応。インフラ構成のコード管理や変更の作業などの手間を自動化し、インフラ構築の効率化を図ることができます。

Q&A

解決済

1回答

5941閲覧

terraformでmoduleを使っているけど現行環境をimportしたい

nyonyosuke

総合スコア73

Terraform

Terraformは、インフラ構築のためのツールです。AWS/DigitalOcean/GoogleCloudといった様々なインフラに対応。インフラ構成のコード管理や変更の作業などの手間を自動化し、インフラ構築の効率化を図ることができます。

0グッド

0クリップ

投稿2020/12/23 05:44

初心者な質問ですいませんが教えていただけますでしょうか。
現在、AWS ALBの設定をTerraformで実現しようとしています。そこで既存のALBの設定を取り込もうとimportを行いたいと考えています。
現在のフォルダー構造は以下のようになっています。
env/prod/main配下でterraform importをしようとしています。

./ ├── README.md ├── env │   └── prod │   └── main.tf └── modules ├── api-alb │   ├── main.tf │   └── variables.tf ├── ecs_cluster │   ├── main.tf │   ├── output.tf │   └── variables.tf └── target_groups └── main.tf

ここでenv/prod/main.tfは

main.tf

1provider "aws" { 2 access_key = "XXXXXXXXXXXXXXX" 3 secret_key = "YYYYYYYYYYYYYYY" 4 region = "ap-northeast-1" 5} 6 7module "api-alb" { 8 source = "../../modules/api-alb" 9}

そしてmodules/api-alb/main.tfは以下のようにしています。

module "alb" { source = "terraform-aws-modules/alb/aws" }

この状態でimportを以下のようにしました。

$ terraform import module.api-alb.module.alb arn:aws:elasticloadbalancing:ap-northeast-1:777777777777:loadbalancer/app/api-alb/aaaaa2222222

実行したら下記のように出てしまいました。
モジュールを使用したimportが初めてで色々試行錯誤していますが解決できません。moduleを使用した場合のimportの方法を教えていただけますでしょうか。

Error: Invalid address on <import-address> line 1: 1: module.api-alb.module.alb A resource instance address is required here. The module path must be followed by a resource instance specification. For information on valid syntax, see: https://www.terraform.io/docs/internals/resource-addressing.html

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。

module "alb" { source = "terraform-aws-modules/alb/aws" }

で更に深堀りして上記sourceを見ると

resource "aws_lb" "this" { count = var.create_lb ? 1 : 0 name = var.name name_prefix = var.name_prefix

と記載があったので

terraform import module.api-alb.module.alb.aws_lb.this arn:aws:elasticloadbalancing:ap-northeast-1:777777777777:loadbalancer/app/api-alb/aaaaa2222222

としたところimportできました。

投稿2020/12/23 08:30

編集2020/12/23 08:35
nyonyosuke

総合スコア73

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問