В этом документе описывается, как удалить транспортное средство доставки. Предполагается, что вы настроили Fleet Engine. См. раздел «Настройка Fleet Engine» .
Основные принципы удаления транспортных средств доставки
Ваша система может использовать Fleet Engine для удаления транспортного средства доставки в следующих ситуациях:
- Для выполнения операций очистки во время тестирования API Fleet Engine.
- Для немедленного удаления транспортного средства доставки, которое больше не требуется.
Для удаления транспортного средства отправьте запрос, используя gRPC или REST.
- Метод
DeleteDeliveryVehicle(): gRPC или REST - Сообщение
DeleteDeliveryVehicleRequest: только для 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;
}
ОТДЫХ
В следующем примере показано, как удалить транспортное средство доставки из Fleet Engine с помощью REST, выполнив вызов метода DeleteDeliveryVehicle .
# 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для удаления каждой из найденных задач.