Back to skills
extension
Category: Development & EngineeringNo API key required

import-helper

Import existing resources into Terraform. Can be initiated with keywords such as "import", "resource import", "importing existing resources", "terraform import", "import", "managing existing infrastructure", "import guide", and "managing resources with terraform".

personAuthor: jakexiaohubgithub

Import Helper

既存の AWS/GCP/Azure リソースを Terraform の管理下に取り込む支援をします。

対応操作

| 操作 | トリガー例 | |------|-----------| | import ガイド | 「import して」「インポート」 | | リソース指定 | 「EC2 を import」「S3 を import」 | | 設定生成 | 「import 用の tf を作成」 |

実行手順

1. import 対象の確認

ユーザーにリソース情報を確認:

## Import 対象

import するリソースの情報を教えてください:

1. リソースタイプ(例: aws_instance, aws_s3_bucket)
2. リソース ID(例: i-1234567890abcdef0, my-bucket)
3. Terraform でのリソース名(例: main, web_server)

2. リソース設定ファイルの作成

import 前に空のリソース定義が必要:

# {resource_type}.tf

resource "{resource_type}" "{resource_name}" {
  # import 後に terraform plan で確認し、属性を追加
}

例:

# aws_instance.tf

resource "aws_instance" "web_server" {
  # import 後に terraform plan で確認し、属性を追加
}

3. import コマンドの生成

terraform import {resource_type}.{resource_name} {resource_id}

例:

# EC2 インスタンス
terraform import aws_instance.web_server i-1234567890abcdef0

# S3 バケット
terraform import aws_s3_bucket.data my-bucket-name

# IAM ロール
terraform import aws_iam_role.app my-role-name

# VPC
terraform import aws_vpc.main vpc-12345678

# セキュリティグループ
terraform import aws_security_group.web sg-12345678

4. import 実行

terraform import {resource_type}.{resource_name} {resource_id}

成功時:

{resource_type}.{resource_name}: Importing from ID "{resource_id}"...
{resource_type}.{resource_name}: Import prepared!
{resource_type}.{resource_name}: Refreshing state...

Import successful!

The resources that were imported are shown above.

5. 設定の同期

import 後、現在の state と設定ファイルを同期:

terraform plan

差分を確認し、設定ファイルを更新:

## Import 後の設定同期

terraform plan で以下の差分が検出されました:

{差分の内容}

この差分をなくすために、設定ファイルを更新してください。

6. 出力フォーマット

## Import 完了

### リソース
- タイプ: {resource_type}
- 名前: {resource_name}
- ID: {resource_id}

### 次のステップ

1. `terraform plan` で差分を確認
2. 設定ファイルに必要な属性を追加
3. 再度 `terraform plan` で差分がないことを確認

### 注意
import 後は設定ファイルと state の同期が必要です。
`terraform plan` で差分が出なくなるまで設定を調整してください。

主要リソースの import コマンド例

| リソース | コマンド | |----------|---------| | EC2 インスタンス | terraform import aws_instance.NAME INSTANCE_ID | | S3 バケット | terraform import aws_s3_bucket.NAME BUCKET_NAME | | IAM ロール | terraform import aws_iam_role.NAME ROLE_NAME | | VPC | terraform import aws_vpc.NAME VPC_ID | | サブネット | terraform import aws_subnet.NAME SUBNET_ID | | セキュリティグループ | terraform import aws_security_group.NAME SG_ID | | RDS インスタンス | terraform import aws_db_instance.NAME DB_IDENTIFIER | | Lambda 関数 | terraform import aws_lambda_function.NAME FUNCTION_NAME |

注意事項

  • ✅ import 前に空のリソース定義を作成
  • ✅ import 後は必ず terraform plan で同期を確認
  • ✅ 設定ファイルは state に合わせて更新
  • ⚠️ import はリソースを変更しないが、設定ミスで次回 apply 時に変更される可能性