1

我是 terraform 的新手。我在私有子网中启动一个简单的 EMR 集群时遇到了一个问题

它失败并显示以下错误消息:

  • aws_emr_cluster.emr-test-cluster:[WARN] 等待 EMR 集群状态为“WAITING”或“RUNNING”时出错:TERMINATED_WITH_ERRORS:VALIDATION_ERROR:如果在私有中创建集群时使用自定义安全组,则还必须指定 ServiceAccessSecurityGroup子网。

我确实检查了 github 似乎已解决了已打开的问题。但我使用的是最新版本的 terraform (0.11.7)

以下是 Github 中报告的问题的 github 链接 https://github.com/hashicorp/terraform/issues/9518 https://github.com/hashicorp/terraform/pull/9600

有关如何解决此问题的任何建议将非常有帮助

谢谢

4

2 回答 2

1

service_access_security_group该问题已在 Git 中得到修复,因为它被提出来显示一个错误,该错误应该在使用emr_managed_master_security_groupand时询问emr_managed_slave_security_group

因此,您需要service_access_security_group在 EMR 资源中提及参数。

谢谢。

于 2018-05-22T13:48:44.487 回答
0

众所周知,要将 emr 组件放在私有子网中,您必须遵循

这些安全组

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-man-sec-groups.html#emr-sg-elasticmapreduce-sa-private

然后在 terraform 中,您必须从此链接解决安全组之间的循环依赖关系,并进行以下配置,如下所示

 ec2_attributes {
subnet_id                         = element(var.subnet_ids, count.index)
key_name                          = "${var.ssh_key_id}"
emr_managed_master_security_group = aws_security_group.EmrManagedMasterSecurityGroup.id
emr_managed_slave_security_group  = aws_security_group.EmrManagedSlaveSecurityGroup.id
service_access_security_group = aws_security_group.ServiceAccessSecurityGroup.id

#additional_master_security_groups = aws_security_group.allow_ssh.id
instance_profile = aws_iam_instance_profile.example_ec2_profile.arn
}

来源:- https://github.com/hashicorp/terraform/pull/9600

于 2020-06-13T18:47:54.470 回答