пятница, 8 декабря 2023 г.

Эмуляция Google Cloud Storage

Для тестирования Spark с хранилищем S3 мы используем MinIO. Это позволяет запускать тесты локально в Docker не имея доступа к реальной инфраструктуре. Недавно дошли до тестирования Spark с Google Cloud Storage и мне довелось разрабатывать аналогичный тест.

В году этак 2019, я искал способ эмулировать GCS для тестирования приложений, но тогда ничего работающего не нашлось.

В этот раз загуглил ещё раз и наткнулся на Cloud storage - How to emulate it locally? в котором упоминались два проекта:

Оба эмулятора без проходят простейший тестовый сценарий:

  1. Создать новый бакет
  2. Положить десяток объектов
  3. Получить список существующих объектов
  4. Скачать содержимое объектов

Чтобы заставить Hadoop GCS Connector ходить в эти эмуляторы, не пытаясь авторизоваться в GCP, пришлось помучиться. Нужные опции для версии 2.2.18 это "fs.gs.auth.null.enable = true" и "fs.gs.auth.service.account.enable = false". Причём о fs.gs.auth.null.enable я случайно узнал из чейнджлога, а не из описания опций.

При работе с oittaa/gcp-storage-emulator ошибками сыплет сам эмулятор, а с fsouza/fake-gcs-server ошибок в логе эмулятора не видно, но сам Spark ругается на закрытое подключение.

В общем пока отложил идею тестировать что-либо связанное с GCS на них.

Комментариев нет:

Отправить комментарий