このドキュメントでは、配送車両を削除する方法について説明します。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を呼び出して、見つかった各タスクを削除します。