Google cloud firestore 云运行错误:容器无法启动。无法在端口定义的端口上启动并侦听
运行此代码一切正常Google cloud firestore 云运行错误:容器无法启动。无法在端口定义的端口上启动并侦听,google-cloud-firestore,google-cloud-run,google-cloud-build,Google Cloud Firestore,Google Cloud Run,Google Cloud Build,运行此代码一切正常 require('dotenv').config(); const express = require('express'); const Firestore = require('@google-cloud/firestore'); const path = require('path'); const app = express(); app.get('/', function (req, res) { console.log('hello-cloud-ru
require('dotenv').config();
const express = require('express');
const Firestore = require('@google-cloud/firestore');
const path = require('path');
const app = express();
app.get('/', function (req, res) {
console.log('hello-cloud-run', 'request received');
const target = process.env.TARGET || 'Juan';
res.send(`Hello ${target} from Notch - Shopify Webhooks!`);
});
const port = process.env.PORT || 8080;
app.listen(port, () => {
console.log('Webhook app listening on port ', port);
});
但是,如果我添加Firestore行(以const db=开头的行),我会得到云运行错误:容器启动失败。无法在端口环境变量定义的端口上启动并侦听。此修订版的日志可能包含更多信息
require('dotenv').config();
const express = require('express');
const Firestore = require('@google-cloud/firestore');
const path = require('path');
const app = express();
const db = new Firestore({
projectId: 'kuracao-db',
keyFilename: path.join(__dirname, process.env.GOOGLE_APPLICATION_CREDENTIALS)
});
app.get('/', function (req, res) {
console.log('hello-cloud-run', 'request received');
const target = process.env.TARGET || 'Juan';
res.send(`Hello ${target} from Notch - Shopify Webhooks!`);
});
const port = process.env.PORT || 8080;
app.listen(port, () => {
console.log('Webhook app listening on port ', port);
});
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]
为什么添加Firestore db会导致云运行错误?
错误:(gcloud.run.deploy)云运行错误:容器无法启动。无法在端口环境变量定义的端口上启动并侦听。此修订版的日志可能包含更多信息
require('dotenv').config();
const express = require('express');
const Firestore = require('@google-cloud/firestore');
const path = require('path');
const app = express();
const db = new Firestore({
projectId: 'kuracao-db',
keyFilename: path.join(__dirname, process.env.GOOGLE_APPLICATION_CREDENTIALS)
});
app.get('/', function (req, res) {
console.log('hello-cloud-run', 'request received');
const target = process.env.TARGET || 'Juan';
res.send(`Hello ${target} from Notch - Shopify Webhooks!`);
});
const port = process.env.PORT || 8080;
app.listen(port, () => {
console.log('Webhook app listening on port ', port);
});
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]
我变了
const db = new Firestore({
projectId: 'kuracao-db',
keyFilename: path.join(__dirname, process.env.GOOGLE_APPLICATION_CREDENTIALS)
});
到
现在我想知道为什么。从云运行时不需要凭据?有道理,但这与端口错误有什么关系?我改变了
const db = new Firestore({
projectId: 'kuracao-db',
keyFilename: path.join(__dirname, process.env.GOOGLE_APPLICATION_CREDENTIALS)
});
到
现在我想知道为什么。从云运行时不需要凭据?有道理,但这与端口错误有什么关系?您的容器是从本地启动的吗?日志中有哪些错误?您确定在您的容器中设置了GOOGLE_应用程序_凭据吗?(为什么要使用这个。在云计算运行时不需要这个!)您的容器是从本地启动的吗?日志中有哪些错误?您确定在您的容器中设置了GOOGLE_应用程序_凭据吗?(你为什么要使用这个。你在云上运行时不需要这个!)大多数谷歌云产品在云上运行时会自动从环境中获取凭据(GCE、GAE、GCF、Cloud Run等)。您不需要设置
GOOGLE\u应用程序\u凭据
。要在本地重现相同的行为,请使用gcloud auth application default login
(不要设置该环境变量)。我猜你的代码崩溃了。大多数谷歌云产品在云上运行时会自动从环境中获取凭据(GCE、GAE、GCF、Cloud Run等)。您不需要设置GOOGLE\u应用程序\u凭据
。要在本地重现相同的行为,请使用gcloud auth application default login
(不要设置该环境变量)。我猜你的代码崩溃了。