【发布时间】:2021-05-24 07:51:24
【问题描述】:
运行这段代码一切正常。
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 = 开头的行),我会收到 Cloud Run 错误:容器无法启动。无法启动并侦听 PORT 环境变量定义的端口。此修订的日志可能包含更多信息。
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);
});
为什么添加 Firestore 数据库会导致 Cloud Run 错误?
错误:(gcloud.run.deploy) Cloud Run 错误:容器无法启动。无法启动并侦听 PORT 环境变量定义的端口。此修订的日志可能包含更多信息。
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]
【问题讨论】:
-
你的容器是本地启动的吗?日志中有哪些错误?您确定在您的容器中设置了 GOOGLE_APPLICATION_CREDENTIAL 吗? (以及为什么要使用它。Cloud Run 上不需要它!)
标签: google-cloud-firestore google-cloud-run google-cloud-build