importブロックの基本構文
v1.5からimportブロックを利用し、Terraformの管理下にない既存のリソースをインポートできるようになりました。(OCIでの)基本的な書き方は以下の通りです。
main.tf
import {
to = module.storage.oci_objectstorage_bucket.this["log"]
id = "<OCID>"
}
module "objectstorage" {
source = "../../modules/objectstorage"
# 以下略
しかし、オブジェクトストレージをインポートする際にこのように書いても、以下のエラーになります。
Error: can not marshal to path in request for field NamespaceName. Due to can not marshal a nil pointer
Terraformのドキュメントを確認
各ページの最下部にインポート用のコマンドサンプルが記載されており、それによると、ネームスペースとバケット名の記載が必要なようです。
オブジェクトストレージのimportブロック
というわけで、オブジェクトストレージの場合は以下のように書くことでインポートできます。
main.tf
import {
to = module.storage.oci_objectstorage_bucket.this["log"]
id = "n/<name_space>/b/<bucket_name>"
}