このドキュメントでは、配送車両を削除する方法について説明します。Fleet Engine が設定されていることを前提としています。Fleet Engine を設定するをご覧ください。
配送車両の削除の基本
次のような状況で、システムが Fleet Engine を使用して配送車両を削除することがあります。
- Fleet Engine API のテスト中にクリーンアップ オペレーションを実行する。
- 不要になった配送車両をすぐに削除するには、
配送車両を削除するには、gRPC または REST を使用してリクエストを送信します。
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
エラーが発生することがあります。この場合、配送車両を参照するタスクがあります。削除を続行するには:
ListTasks
を呼び出して、配信車両を参照するタスクを検索します。DeleteTask
を呼び出して、検出された各タスクを削除します。