Простое развертывание Google Cloud: копирование файлов Python из репозитория Google Cloud в механизм приложений - PullRequest
0 голосов
/ 07 октября 2018

Я внедряю непрерывную интеграцию и непрерывную доставку для крупного корпоративного хранилища данных.Весь код находится в Google Cloud Repository, и я могу настроить триггер Google Cloud Build, чтобы каждый раз, когда код определенного типа файла (скрипты Python) передавался в основную ветку, запускалась сборка Google Cloud.

Скрипты Python не составляют приложение.Они содержат строку подключения ODBC и скрипт для извлечения данных из источника и сохранения их в виде CSV-файла.Сценарии Python должны выполняться на экземпляре виртуальной машины Google Compute Engine с установленным AirFlow.

Таким образом, развертывание сценариев Python максимально простое: файлы .py следует копировать только из GoogleПапка облачного хранилища в определенную папку на экземпляре виртуальной машины Google.На самом деле традиционная сборка для запуска не существует, так как все файлы Python отделены друг от друга и не являются частью приложения.

Я думал, что это будет действительно легко, но теперь я потратил несколько дней, пытаясь понять это без удачи.Google Cloud Platform предоставляет несколько Cloud Builders, но, насколько я понимаю, ни один из них не может выполнить эту простую задачу.Использование GCLOUD также не работает.Он может копировать файлы, но только с локального компьютера на виртуальную машину, а не из исходного репозитория в виртуальную машину.

Мне нужен конфигурационный файл сборки YAML или JSON для копирования этих файлов Python из исходного репозитория в Google Compute EngineVM Instance.

Надеемся на некоторую помощь здесь.

1 Ответ

0 голосов
/ 07 октября 2018

Файлы / папки в репозитории Google Cloud не доступны напрямую (это похоже на пустой репозиторий git ), вам нужно сначала клонировать репо, а затем скопировать нужные файлы / папки из клонированного репо

Возможно можно использовать стандартный шаг сборки Fetching dependencies для клонирования репо, но я не уверен на 100%в вашем случае, поскольку вы на самом деле не делаете сборку:

steps:
- name: gcr.io/cloud-builders/git
  args: ['clone', 'https://github.com/GoogleCloudPlatform/cloud-builders']

Если нет, вам может потребоваться один (или несколько) пользовательских шагов сборки.Начиная с Создание пользовательских этапов сборки :

Пользовательский этап сборки - это образ контейнера, который рабочая виртуальная машина Cloud Build извлекает и запускает, установив исходный том в /workspace.Ваш пользовательский шаг сборки может выполнить любой скрипт или двоичный файл внутри контейнера;поэтому он может делать все, что может делать контейнер.

Пользовательские шаги сборки полезны для:

  • Загрузка исходного кода или пакетов из внешних источников

    ...

...