将消息从 AWS Lambda 服务发布到 GCP Pub/Sub

时间:2021-05-07 10:14:00

标签: aws-lambda google-cloud-pubsub

我正在从 AWS Lambda 向 GCP Pub/Sub 发布消息。 我正在使用客户端库来完成谷歌文档中提到的这项工作。

https://cloud.google.com/pubsub/docs/publisher

当通过 Nuget 添加 Google.Cloud.PubSub.V1 时,它会在内部将以下库添加到解决方案中 libgrpc_csharp_ext.x64.so - Approximately 80MB

libgrpc_csharp_ext.x86.so - Approximately 67MB

从 Visual Studio 2019 发布 AWS Lambda 应用程序时,由于上传限制 (50MB) 引发错误。 压缩后发布的文件夹大小超过 50MB。

作为一种解决方法,我从发布文件夹中手动删除了 libgrpc_csharp_ext.x86.so 文件,并从 .deps.json 文件并将 zip 文件上传到 Lambda。

有没有更简单的方法来完成这项任务?我不确定我是否错过了任何选项。

2 个答案:

答案 0 :(得分:0)

如果无法安装库,您可以使用 API call。您仍然需要有 OAuth2 库来生成访问权限以放入请求的标头。但是 Google OAuth2 库应该比您尝试安装的大库小。

答案 1 :(得分:0)

S3 绕过

首先使用任何小于 50MB 的随机 zip 文件创建函数。对于我的命令,我假设您的函数名称为 limits-test,而您的函数部署包名为 function.zip

然后创建一个 s3 存储桶

aws s3 mb s3://limits-test--region us-east-1

上传函数的部署包

aws s3 cp ./function.zip s3://limits-bucket/ --recursive --exclude "*" --include "*.zip"

然后更新您的函数以指向 s3

aws lambda update-function-code --function-name limits-test --region us-east-1 --s3-bucket limits-bucket --s3-key function.zip

这将绕过 50MB 的限制。我相信现在限制是 250MB