使用GKE的kubernetes python客户端在python上实现try/except



我如何实现try?除了在我的python脚本上,我正在使用kubernetes python客户端与我的GKE集群通信。如果部署不存在,我想创建一个部署。我目前正在做这件事(下面的代码(,但它似乎不起作用,因为它返回API异常错误,程序崩溃。

这是我目前实现的

def get_job():
conn.connect()
api = client.CustomObjectsApi()
for message in consumer:
message = message.value
try:
resource = api.get_namespaced_custom_object(
group="machinelearning.seldon.io",
version="v1",
name=message["payload"]["metadata"]["name"],
namespace="seldon",
plural="seldondeployments",
) # execution stops here and doesn't move to the next step.

api.create_namespaced_custom_object(
group="machinelearning.seldon.io",
version="v1",
namespace="seldon",
plural="seldondeployments",
body=message['payload'])
print("Resource created")
print(e)
else:
pass

我该怎么解决这个问题?我试图遵循的逻辑是这个

  1. 如果部署存在,则返回一条已存在的消息,而不会使脚本崩溃
  2. 如果部署不存在,请创建一个新的部署

我目前正在做这件事(下面的代码(,但它似乎不起作用,因为它返回API异常错误,程序崩溃。

它崩溃的原因是没有处理代码中的异常。你的方法似乎也有缺陷。您的试算表可以拆分为类似这样的(信用(

try:
statements # statements that can raise exceptions
except:
statements # statements that will be executed to handle exceptions
else:
statements # statements that will be executed if there is no exception

所以你要做的是将操作添加到需要的位置

如果部署存在,则返回一条已存在的消息,而不会使脚本崩溃。

您可以在else语句中处理此问题,只需打印一条消息来声明它已经存在。

如果部署不存在,请创建一个新的部署。

您可以在try语句的except部分中添加此操作,因此当抛出错误时,它将捕获错误并按照您指定的方式执行操作。

相关内容

  • 没有找到相关文章

最新更新