我在 Google Cloud Run 上部署了一个 NestJS GraphQL 项目。除了 GraphQL 功能之外,我还直接调用 gRPC 微服务(在 GraphQL 之外),并且它在我的本地计算机上完美运行。但是,当我将项目部署到 Cloud Run 并尝试相同的操作时,遇到错误。即使我发送的 JSON 负载非常小,问题仍然存在。对于可能导致此问题的原因有什么见解吗?
@Injectable()
export class AdsStatisticsService implements OnModuleInit {
adsStatService: StatService;
constructor(@Inject('ADS_STATISTICS') private client: ClientGrpc) {}
onModuleInit() {
this.adsStatService = this.client.getService<StatService>('StatService');
}
insertAdsStat(request: InputInsert): Observable<string> {
return this.adsStatService.insertAdsStat(request);
}
}
// inside of request
request = {advertisementId:1, views:100, date:1734337800000}
这样的错误:
8 RESOURCE_EXHAUSTED: Received message larger than max (1013478509 vs 209715200)
我尝试了nestjs允许的所有grpc数据发送格式,但没有成功。我错过了什么或做错了什么?
我增加了机器的规格。
此问题的根本原因是不同的 HTTP 错误,该错误被 RESOURCE_EXHAUSTED 错误掩盖。
这是此错误的结果:gRPC 库将 HTTP 错误响应解析为长度分隔的消息,并且解析得到的长度大于配置的最大值(本例中的默认值)。