首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何同时从地形创建多个胶水爬行器

如何同时从地形创建多个胶水爬行器
EN

Stack Overflow用户
提问于 2022-10-12 22:04:53
回答 1查看 45关注 0票数 0

我正在部署来自terraform的爬虫数组,我希望同时部署一个包含2个或更多爬虫的列表。我使用的是foreach,但是对于dynamodb_target,我无法找到如何将它与特定的爬虫相关联,也就是说,爬虫1具有table_name 1作为dynamodb_target an等等。

main.tf

代码语言:javascript
复制
resource "aws_glue_crawler" "example" {
  for_each = var.crawlerList

    database_name = each.value.database_name
    name          = each.value.crawler_name
    role          = each.value.role
    
  dynamodb_target {
    path = var.table_name
  }
}

variables.tf

代码语言:javascript
复制
variable "table_name" {
  type        = string
  description = "The name of the DynamoDB table to crawler."
}



variable "crawlerList" {
  type = map(object({
    database_name = string
    crawler_name  = string
    role          = string
  }))
}

var.tfvars

代码语言:javascript
复制
table_name = "ref_master_files"


crawlerList = {
  fisrt = ({
    database_name = "dm_web"
    crawler_name  = "example_one"
    role          = "xxxx"
  }),
  second = ({
    database_name = "dm_web"
    crawler_name  = "example_two"
    role          = "xxxx"
  }),
  third = ({
    database_name = "dm_web"
    crawler_name  = "example_third"
    role          = "xxxx"
  }),
}

结果

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-13 01:03:19

很难得到你想要达到的目标,所以我有两个选择。

  1. ,您希望为每个爬虫分配不同的table_name。然后-为另一个值展开变量:

代码语言:javascript
复制
variable "crawlerList" {
  type = map(object({
    database_name = string
    crawler_name  = string
    role          = string
    table_name    = string
  }))
}

  1. 您有一些没有附加的多变量的table_names变量。那么,您需要的是匹配它们。--

可能是这样的:

代码语言:javascript
复制
tables = ["table1", "table2"]
matches = {"table1": "first", "table2":"second"}

然后你会像这样迭代:

代码语言:javascript
复制
resource "aws_glue_crawler" "example" {
  for_each = var.matches

    database_name = var.crawler_list[each.value].database_name
    name          = var.crawler_list[each.value].crawler_name
    role          = var.crawler_list[each.value].role
    
  dynamodb_target {
    path = var.tables[each.key]
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74048422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档