如何从Node.js以编程方式创建云运行服务?
我正在尝试使用如何从Node.js以编程方式创建云运行服务?,node.js,google-api,google-cloud-run,Node.js,Google Api,Google Cloud Run,我正在尝试使用googleapis客户端库从firebase函数创建一个新的云运行服务。以下代码: const auth = new google.auth.GoogleAuth({ projectId, scopes: ['https://www.googleapis.com/auth/cloud-platform'] }); const authClient = await auth.getClient(); const result = await goo
googleapis
客户端库从firebase函数创建一个新的云运行服务。以下代码:
const auth = new google.auth.GoogleAuth({
projectId,
scopes: ['https://www.googleapis.com/auth/cloud-platform']
});
const authClient = await auth.getClient();
const result = await google.run({
version: 'v1',
auth: authClient
}).namespaces.services.create({
parent: `namespaces/${projectId}`,
requestBody: {
metadata: {
name: 'asdf'
},
spec: {
template: {
spec: {
containers: [
{
image: 'gcr.io/graph-4d1ec/graph@sha256:80c764961657d7e2fe548b3886c4662c55c9b5ac881aad5a74cce2d1f97895b8',
env: [
{ name: 'URL', value: url }
]
}
]
}
},
traffic: [{ percent: 100, latestRevision: true }]
}
}
}, {})
产生一个错误:
Error: The request has errors
at Gaxios._request (/srv/node_modules/gaxios/build/src/gaxios.js:85:23)
at <anonymous>
at process._tickDomainCallback (internal/process/next_tick.js:229:7)
错误:请求有错误
在Gaxios._请求时(/srv/node_modules/Gaxios/build/src/Gaxios.js:85:23)
在
在进程中。_tickDomainCallback(internal/process/next_tick.js:229:7)
没有提供关于此请求有何问题的进一步信息
我做错了什么?最值得注意的是,默认情况下使用的API客户端库指向
run.googleapis.com
但是,在使用namespaces.services.create
时,您需要一个区域api端点,例如us-central1-run.googleapis.com
。我不熟悉Node.js,但您需要将API端点从默认值更改为该值
你真是太幸运了,我在5分钟前刚刚发布了一篇博文,解释了gcloud run deploy
是如何在封面下工作的,详细介绍了API调用、如何进行更新等。文章最后链接了示例Go代码,供你学习。请注意,“更新”云运行服务还有其他一些复杂的地方需要理解,所以请务必查看博客文章
此外,为了调试您遇到的问题,我假设(同样,我对Node.js一无所知)您可能会在
result
对象中找到更多信息,该对象存储了一些错误值或http响应代码或正文 我试着设置wait google.run({…,rootUrl:'us-central1-run.googleapis.com')
,从库的代码看,这似乎是正确的参数,但现在我发现404找不到
。我想你需要https://,并且可能需要一个尾部的/
。你能在中间插入一个<代码> MITMyPosivs/COD>并为你的应用程序设置HTTPSYPROVER EVVAR来捕获你的应用程序的流量吗?这与我的博客文章相结合,可以帮助您进行调试。因为您直接使用API调用,所以不能期望太多的原谅,一切都必须准确。是的,很抱歉,我忘记在我的评论中添加https://
,但我实际上用它进行了尝试。我还尝试复制请求gcloud--log http run deploy…
makes,还是相同的问题。您复制的请求中的错误消息是什么?正如我所说,我已经在Go中重新实现了这一点,并公开了示例代码。我建议你研究一下。