Запуск сборки Google Container Builder с помощью облачных функций - PullRequest
0 голосов
/ 08 мая 2018

Я использую Container Builder для обработки огромных файлов JSON и их преобразования.Это хорошая возможность нестандартного использования, как описано здесь .

Возможно ли запустить сборку контейнера и передать ему параметр через облачные функции?Это позволило бы воздействовать на вновь загруженные файлы в GCS и автоматически обрабатывать их через конструктор контейнеров.

В настоящее время я пытаюсь использовать REST API для его запуска (я новичок в Node.js), но получаю404 на моем URL.Я занимаюсь разработкой экземпляра Cloud Shell с полным доступом к API.

URL-адрес, который я пытаюсь вызвать с помощью запроса PUT и тело JSON, содержащее JSON-эквивалент успешно выполненного cloudbuild.yaml: https://cloudbuild.googleapis.com/v1/projects/[PROJECT_ID]/builds

Я используюзапрашивает библиотеку из Node.js:

request({ url: "https://cloudbuild.googleapis.com/v1/projects/[PROJECT_ID]/builds", 
    method: 'PUT', 
    json: {"steps":[{"name":"gcr.io/cloud-builders/gsutil",(...),
    function(error, response, body){
        console.log(error)
        console.log(response)
        console.log(body)
    })

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

Видимо, уже есть кто-то, кто это сделал. Библиотека находится на GitHub: https://github.com/mhr3/gcp-container-builder-node и доступна через npm: https://www.npmjs.com/package/gcp-container-builder

Поначалу мне было непонятно, но вот как я сейчас его использую:

var build = Object.create(null);
build.steps = [{
    name: 'gcr.io/cloud-builders/gsutil',
    args: ['cp', 'gs://some_bucket/some_file.json', '/workspace/some_file.json']
}]

// more build steps, converting the file, uploading it, etc.

builder.createBuild(build, function(err, resp) {
    console.log(err);
    console.log(resp);
});
0 голосов
/ 10 мая 2018

Предлагаемая процедура требует трех разных шагов:

Облачное хранилище Google → Облачные функции → Вызов API.

В соответствии с вашими требованиями, может быть лучше использовать Триггеры компоновки Контейнерного Строителя .

Вы загружаете файлы в Google Cloud Source Repository и создаете триггер. Каждый раз, когда вы загружаете изменение в репозиторий, Контейнер Builder автоматически создает изображение. Таким образом вы избегаете использования облачных функций, вызова API и Node.js.

Это сократит процедуру до одного шага, что снижает сложность и повышает надежность.

...