小编Raf*_*ues的帖子

Terraform遍历列表

我想将3个独立变量(dev_id,prod_id,stage_id)替换为包含所有三个变量的单个列表,并对其进行迭代,然后将其应用于策略。

这是terraform可以做的吗?

data "aws_iam_policy_document" "iam_policy_document_dynamodb" {
  statement {
    effect    = "Allow"
    resources = ["arn:aws:dynamodb:${var.region}:${var.account_id}:table:${var.dynamodb_table_name}"]

    actions = [
      "dynamodb:GetItem",
      "dynamodb:PutItem",
      "dynamodb:DeleteItem",
    ]

    principals {
      type = "AWS"

      identifiers = [
        "arn:aws:iam::${var.dev_id}:root",
        "arn:aws:iam::${var.prod_id}:root",
        "arn:aws:iam::${var.stage_id}:root"
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我研究了周期和插值,但是似乎99%的时间插值都是通过“计数”完成的,“计数”仅适用于创建多种资源(我希望我不会在说谎)。

例如,我曾经

principals {
   count = "${length(var.list)}"
   identifiers = ["arn:aws:iam::${var.list[count.index]}"]
}
Run Code Online (Sandbox Code Playgroud)

但这是不成功的。

是否有某种方法可以实现用单个列表(或映射)替换这三个变量并对其进行迭代的最终目标?

terraform terraform-provider-aws

5
推荐指数
1
解决办法
7860
查看次数

Python - 在元组集中定位元素

我有一组元组,每个元组都有有限数量的元素.

我想检查该集合中是否存在某个元素,该元素具有我正在搜索的特定组件.

set_of_tuples = {(el_11, el_12, el_13), (el_21, el_22, el_23)}
a = (dont_care, el_12, dont_care)
Run Code Online (Sandbox Code Playgroud)

如何在集合中找到包含该特定组件的元组元素?

我可以使用列表理解来做到这一点,但这是一个非常缓慢的过程.

使用集合,在简单的情况下,我可以做这样的事情:

el = (1,2)
set_of_tuples = {(1,2), (2,3) ...}
Run Code Online (Sandbox Code Playgroud)

我可以验证它是否存在,在set_of_tuples中执行:el.

我问的是,有没有办法做同样的事情,但没有关心一些元组元素,例如:

el = (_,2)
el in set_of_tuples
Run Code Online (Sandbox Code Playgroud)

python tuples set

2
推荐指数
1
解决办法
1233
查看次数

使用for循环对列表中的项目进行反应 - onClick(项目)

我正在制作一个反应列表,其项目应触发更新状态的操作.然而,触发和状态更新都会发生,而onClick方法每次都使用相同的参数调用该操作.这不应该发生.传递给操作的参数必须取决于单击列表的项目.

我无法找到导致此错误的错误.

这是我的下拉类,其中呈现列表.

class DropDownMenu extends React.Component {
  constructor(props){
    super(props)
  }
  render(){
    let content = []
    var categories = this.props.categories
    for (var i=0; i < categories.length; i++) {
      var catName = categories[i]
      var line = (
        <li
          key ={i}
          onClick = {() => {this.props.onClick(catName)}}
        >
        <p>{catName}</p>
        </li>
      )
      content.push(line)
    }
    return (
      <div>
        <Dropdown ref="dropdown">
          <DropdownTrigger>Categories</DropdownTrigger>
          <DropdownContent>
            <ul>
              { content }
            </ul>
          </DropdownContent>
        </Dropdown>
      </div>
    )
  }
}
Run Code Online (Sandbox Code Playgroud)

这是管理状态并调用上述类的容器

class MenuContainer extends React.Component {
  constructor(props) {
    super(props)
  } …
Run Code Online (Sandbox Code Playgroud)

javascript onclick reactjs redux

0
推荐指数
1
解决办法
1322
查看次数