使用带有 GKE 的 kubernetes python 客户端在 python 上实施 try/except
implement try/except on python with kubernetes python client with GKE
如何在我的 python 脚本上实现 try and except,我正在使用 kubernetes python 客户端与我的 GKE 集群通信。如果它不存在,我想创建一个部署。我目前正在这样做(下面的代码),但它似乎不起作用,因为它 return 是一个 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
我该如何解决这个问题?
我试图遵循的逻辑是这样的
- 如果部署存在,return 一条已经存在的消息而不会导致脚本崩溃。
- 如果部署不存在,请创建一个新部署。
I am currently doing this (code below) but it doesn't seem to work as it returns an API exception error and the program crashes.
它崩溃的原因是代码中没有处理异常。您的方法似乎也有缺陷。您的 try 语句可以拆分成这样的 (credit)
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
所以你要做的就是在需要的地方添加操作。
If the deployment exists, return a already exist message without crashing the script.
您可以在 else
语句中处理此问题,并简单地打印一条消息说明它已经存在。
If the deployment doesn't exist, create a new deployment.
您可以在 try 语句的 except
部分添加此操作,因此当抛出错误时,它会捕获它并按照您指定的方式执行操作。
如何在我的 python 脚本上实现 try and except,我正在使用 kubernetes python 客户端与我的 GKE 集群通信。如果它不存在,我想创建一个部署。我目前正在这样做(下面的代码),但它似乎不起作用,因为它 return 是一个 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
我该如何解决这个问题? 我试图遵循的逻辑是这样的
- 如果部署存在,return 一条已经存在的消息而不会导致脚本崩溃。
- 如果部署不存在,请创建一个新部署。
I am currently doing this (code below) but it doesn't seem to work as it returns an API exception error and the program crashes.
它崩溃的原因是代码中没有处理异常。您的方法似乎也有缺陷。您的 try 语句可以拆分成这样的 (credit)
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
所以你要做的就是在需要的地方添加操作。
If the deployment exists, return a already exist message without crashing the script.
您可以在 else
语句中处理此问题,并简单地打印一条消息说明它已经存在。
If the deployment doesn't exist, create a new deployment.
您可以在 try 语句的 except
部分添加此操作,因此当抛出错误时,它会捕获它并按照您指定的方式执行操作。