Вызов gsutil или gcloud из облачной функции Google?

У меня есть приложение Google Firebase с серверной частью Cloud Functions. Я использую среду выполнения node.js 10, то есть Ubuntu 18.04. Пользователи могут загружать файлы в Google Cloud Storage, и это запускает функцию GCF.

Я бы хотел, чтобы эта функция скопировала этот файл в Google Cloud Filestore (это файл с буквой L), новый файловый сервер Google, монтируемый по NFS. Они говорят, что обычный способ сделать это - из командной строки сgsutil rsync или gcloud compute scp.

Мой вопрос: доступны ли одна или обе эти команды на узлах GCF? Или есть другой способ? (Было бы здорово, если бы я мог просто смонтировать общий ресурс Filestore в экземпляре GCF, но я предполагаю, что это нетривиально.)

2 ответа

Использование хранилища на основе NFS не является хорошей идеей в этой среде. NFS работает, предоставляя монтируемую файловую систему, что не будет работать в среде Cloud Functions, поскольку файловая система доступна только для чтения, за исключением папки /tmp.

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

Согласно официальной документации документация Cloud Filestore

Используйте Cloud Filestore для создания полностью управляемых файловых серверов NFS на Google Cloud Platform (GCP) для использования с приложениями, работающими на экземплярах виртуальных машин (ВМ) Compute Engine или кластерах Google Kubernetes Engine.

Вы не можете смонтировать Filestore на GCF.

Кроме того, вы не можете выполнять команды gsutil или gcloud из облачной функции Google Написание облачных функций.

Облачные функции Google могут быть написаны на Node.js, Python и Go и выполняются в среде выполнения, зависящей от языка.

Другие вопросы по тегам