由于安全组依赖性,删除EMR堆栈时,AWS Cloudformation失败

时间:2020-01-03 19:16:48

标签: yaml amazon-cloudformation amazon-emr

该cloudformation脚本基本上是为了干净地创建EMR基础结构,并在使用后将其删除。整个EMR是在用户创建的VPC中创建的,而不是默认设置。

Cloudformation创建工作正常,但是在删除堆栈时清理失败。

删除它几乎可以成功删除除以下内容以外的所有资源,
EMRMasterEC2SecurityGroup
资源sg-0d4cdfd30cf36235d具有从属对象(服务:AmazonEC2;状态代码:400;错误代码:DependencyViolation;请求ID:ad65169c-af60-4db2-b537-5d8eaf557bdc)

EMRSlaveEC2SecurityGroup
资源sg-091284af912a274c8具有从属对象(服务:AmazonEC2;状态代码:400;错误代码:DependencyViolation;请求ID:760515ac-78f3-4b3c-a7d4-5b6aa2b46099)

如果我失败后手动删除VPC,它将自动删除所有从属资源(安全组)。

我看到的一件奇怪的事情是,在我创建的新VPC中有一个名为“默认”的安全组,不确定是否是由于这个原因。 安全组ID:sg-0e47d58f225df7f63
群组名称:默认
入站规则:所有流量(协议:全部,端口范围:全部,源:sg-0e47d58f225df7f63)
出站规则:所有流量(协议:全部,端口范围:全部,源:0.0.0.0/0)

CloudFormation的输入是堆栈名称,AWS密钥ID,AWS Secret访问密钥和EC2-KeyPair

下面是代码,请让我知道如何去做,花了几天的时间看了一下,而不去看它。

from PyQt5 import QtWidgets

from GUI import compiled_MainWindow
from GUI import compiled_SecondWindow

class Window_MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        self.ui = compiled_MainWindow.Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.closeEvent = self.clicked_EXIT

        # connect widgets
        self.ui.Btn.clicked.connect(self.clicked_Btn)
        self.ui.actionExit.triggered.connect(self.clicked_EXIT)

        # add windows
        self.SecondWindow = SecondWindow()
        # more windows attached to main window

    def clicked_Btn(self):
        self.hide()
        self.SecondWindow.show()

    def clicked_EXIT(self):
        self.close()

class Window_SecondWindow(Window_MainWindow):
    def __init__(self):
        QtWidgets.QMainWindow.__init__(self)
        self.ui = compiled_SecondWindow.Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.closeEvent = self.clicked_EXIT

        self.ui.actionExit.triggered.connect(self.clicked_EXIT)

    def clicked_EXIT(self):
        self.hide()
        super().show()

0 个答案:

没有答案