mam*_*mur 9 node.js aws-lambda grpc
我在 nodejs 中实现了 grpc 服务器和客户端。服务器正在运行0.0.0.0:8080。当我在本地测试时,客户端可以正常连接。但是当我将客户端移动到 aws-lambda 函数并在本地调用时它不起作用。服务器没有收到任何请求。知道可能是什么问题吗?
我曾尝试更改端口并关闭防火墙。还是没有成功。
任何帮助表示赞赏。
这里是 server.js
const grpc = require('grpc');
const path = require('path');
const FILE_PATH = './schema.proto';
const PROTO_PATH = path.resolve(__dirname, FILE_PATH);
const protoLoader = require('@grpc/proto-loader');
const tourProcess = require('../../src/modules/tour/src/controllers/internal/v100');
const server = new grpc.Server();
const packageDefinition = protoLoader.loadSync(PROTO_PATH, {
keepCase: true,
longs: String,
enums: String,
arrays: true,
oneofs: true
});
const pivoTourProto = grpc.loadPackageDefinition(packageDefinition).grpcPivoTour;
server.addService(pivoTourProto.pivoTourService.service, {
getTours: tourProcess.getTours
});
server.bind('0.0.0.0:8080', grpc.ServerCredentials.createInsecure());
console.log('GRPC running at 127.0.0.1:8080');
module.exports = server;
Run Code Online (Sandbox Code Playgroud)
client.js
var path = require('path');
const FILE_PATH = "./schema.proto";
const PROTO_PATH = path.resolve( __dirname, FILE_PATH );
const grpc = require("grpc");
const protoLoader = require("@grpc/proto-loader");
var packageDefinition = protoLoader.loadSync(PROTO_PATH, {
keepCase: true,
longs: String,
enums: String,
arrays: true
});
const pivoTourProto = grpc.loadPackageDefinition(packageDefinition).grpcPivoTour;
const client = new pivoTourProto.pivoTourService(
'0.0.0.0:8080',
grpc.credentials.createInsecure()
);
module.exports = client;
Run Code Online (Sandbox Code Playgroud)
//LAMBDA HANDLER lambda.js
require('dotenv').config();
const client = require('./src/grpc/client');
module.exports.handler = async (event, context, callback) => {
tourId = "1";
const req = {"id": tourId};
client.getTours(req, function(error, tour){
if(error){
console.log(error);
}else{
console.log(tour);
}
});
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
332 次 |
| 最近记录: |