本文档介绍了如何删除配送车辆。本文假定您已设置 Fleet Engine。请参阅设置车队引擎。
关于删除配送车辆的基础知识
在以下情况下,您的系统可能会使用车队引擎删除配送车辆:
- 在测试车队引擎 API 时执行清理操作。
- 立即删除不再需要的配送车辆。
如需删除配送车辆,请使用 gRPC 或 REST 发送请求。
使用项目服务账号的适当凭据,如车队引擎:服务账号角色中所述。
示例:删除配送车辆
以下示例展示了如何使用 Java gRPC 库删除配送车辆。
static final String PROJECT_ID = "my-rideshare-co-gcp-project";
static final String VEHICLE_ID = "vehicle-8241890";
String deliveryVehicleName = "providers/" + PROJECT_ID + "/deliveryVehicles/" + VEHICLE_ID;
DeliveryServiceBlockingStub deliveryService = DeliveryServiceGrpc.newBlockingStub(channel);
// Delete Vehicle request
DeleteDeliveryVehicleRequest deleteDeliveryVehicleRequest =
DeleteDeliveryVehicleRequest.newBuilder().setName(deliveryVehicleName).build();
try {
deliveryService.deleteDeliveryVehicle(deleteDeliveryVehicleRequest);
} catch (StatusRuntimeException e) {
Status s = e.getStatus();
switch (s.getCode()) {
case NOT_FOUND: // The delivery vehicle doesn't exist.
break;
case FAILED_PRECONDITION: // There are tasks(s) that reference delivery vehicle.
break;
case PERMISSION_DENIED:
break;
}
return;
}
以下示例展示了如何通过调用 DeleteDeliveryVehicle
使用 REST 从车队引擎中删除配送车辆。
# DELETE https://fleetengine.googleapis.com/v1/providers/<project_id>/deliveryVehicles/<vehicleId>
# Set JWT, PROJECT_ID, and VEHICLE_ID in the local environment
curl -X DELETE -H "Authorization: Bearer ${JWT}" \
"https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/deliveryvehicles/${VEHICLE_ID}"
如果删除操作成功,该 API 将返回一个空响应。
处理错误
删除配送车辆时,您可能会遇到 FAILED_PRECONDITION
错误,在这种情况下,系统会引用配送车辆的任务。如要继续删除,请执行以下操作:
- 调用
ListTasks
以查找引用传送车辆的任务。 - 调用
DeleteTask
以删除找到的每个任务。