我正在使用Container Builder来处理巨大的JSON文件并对其进行转换。如here所描述的那样,非标准使用它的可能性很大。
是否可以触发容器构建器构建并通过云功能将参数传递给它?这将允许对GCS中新上传的文件采取行动,并自动通过容器构建器处理它们。
目前我正在尝试使用REST API来触发它(我是Node.js的新手),但我的URL上有404。我正在使用具有完全API访问权限的Cloud Shell实例进行开发。
我尝试通过PUT
请求触发的网址以及包含成功运行cloudbuild.yaml
的JSON等效的JSON正文: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)
})
答案 0 :(得分:1)
显然,已经有人做过了。该库位于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);
});