该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()