簡體   English   中英

將 terraform 資源導入本地塊

[英]Importing terraform resources into a local block

我有一個項目,在 AWS 中有許多我們需要管理的 SQS 隊列。 我需要將這些隊列導入到我的 terraform 代碼中,但由於它們已經被使用,我無法銷毀和重新創建它們。

由於我們有很多隊列,我們​​使用locals塊而不是它的resource塊來定義它的一些參數,例如namedelay_seconds等。 (這是因為我們不想添加超過 10 個resource塊來將隊列導入其中並有 100 多行代碼)

下面是我們用來創建它們的示例代碼:

provider "aws" {
  region = "us-east-2"
}

locals {
  sqs_queues = {
    test-01 = {
      name          = "test-import-terraform-01"
      delay_seconds = 30
    }
    test-02 = {
      name          = "test-import-terraform-02"
      delay_seconds = 30
    }
  }
}

resource "aws_sqs_queue" "queue" {
  for_each      = local.sqs_queues
  name          = each.value.name
  delay_seconds = each.value.delay_seconds
}

這反過來將創建以下隊列:像往常一樣的test-import-terraform-01test-import-terraform-02 查詢我的狀態文件,我可以看到然后定義如下:

aws_sqs_queue.queue["test-01"]
aws_sqs_queue.queue["test-02"]

基於此,我想將兩個現有隊列導入我的代碼: test-import-terraform-03test-import-terraform-04 我考慮將這兩個地圖添加到我的locals塊中:

test-03 = {
  name          = "test-import-terraform-03"
  delay_seconds = 30
}
test-04 = {
  name          = "test-import-terraform-04"
  delay_seconds = 30
}

但是,當我嘗試導入它們時,任一隊列都會出現以下錯誤:

$ terraform import aws_sqs_queue.queue["test-03"] https://sqs.us-east-2.amazonaws.com/12345678910/test-import-terraform-03
zsh: no matches found: aws_sqs_queue.queue[test-03]

做這樣的事情可能嗎?

您的問題與 Terraform 無關,而與 shell 擴展有關(注意錯誤消息來自zsh )。

嘗試正確引用您的 shell 參數:

terraform import 'aws_sqs_queue.queue["test-03"]' 'https://sqs.us-east-2.amazonaws.com/12345678910/test-import-terraform-03'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM