一些背景。我想删除 AWS Redshift 集群,这个过程需要 30 多分钟。所以这就是我想要做的:
- 开始删除
- 每 1 分钟检查一次集群状态(应该是“正在删除”)
- 删除集群时,该命令将失败(因为它无法再找到集群)。所以记录一些消息并继续脚本的其余部分
这是我在while
开始删除后循环运行以检查集群状态的命令:
resp = redshift.client.describe_clusters(:cluster_identifier=>"blahblahblah")
deleting
上面的命令将在删除过程继续时让我获得集群状态。但是一旦集群被完全删除,那么命令本身就会失败,因为它找不到集群blahblahblah
。
这是删除集群后来自命令的错误:
/var/lib/gems/1.9.1/gems/aws-sdk-1.14.1/lib/aws/core/client.rb:366:in `return_or_raise': Cluster blahblahblah not found. (AWS::Redshift::Errors::ClusterNotFound)
我同意这个错误。但这使我的脚本突然退出。所以我想记录一条消息The cluster is deleted....continuing
并继续我的脚本。
我尝试了以下设置
resp = redshift.client.describe_clusters(:cluster_identifier=>"blahblahblah")
|| raise (“The cluster is deleted....continuing”)
我还尝试了https://www.ruby-forum.com/topic/133876中提到的一些建议, 但这不起作用。一旦上述命令找不到集群,我的脚本就会退出。
问题:如何忽略错误,打印我自己的消息“集群已删除....继续”并继续执行脚本?
谢谢。