删除配送车辆

本文档介绍了如何删除送货车辆。本文档假定您已设置 Fleet Engine。请参阅设置 Fleet Engine

配送车辆删除基础知识

在以下情况下,您的系统可能会使用 Fleet Engine 删除送货车辆:

  • 在测试 Fleet Engine API 时执行清理操作。
  • 立即删除不再需要的送货车辆。

如需删除送货车辆,请使用 gRPC 或 REST 发送请求。

  • DeleteDeliveryVehicle() 方法:gRPCREST
  • DeleteDeliveryVehicleRequest message:仅限 gRPC

按照 Fleet Engine:服务账号角色中的说明,为项目的服务账号使用适当的凭据。

示例:删除送货车辆

Java

以下示例展示了如何使用 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;
  }

REST

以下示例展示了如何通过调用 DeleteDeliveryVehicle 使用 REST 从 Fleet Engine 中删除送货车辆。

  # 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 错误,在这种情况下,存在引用该送货车辆的任务。如需继续删除,请执行以下操作:

  1. 调用 ListTasks 以查找引用配送车辆的任务。
  2. 调用 DeleteTask 可删除找到的每个任务。

后续步骤