我正在从 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。
有没有更简单的方法来完成这项任务?我不确定我是否错过了任何选项。
答案 0 :(得分:0)
如果无法安装库,您可以使用 API call。您仍然需要有 OAuth2 库来生成访问权限以放入请求的标头。但是 Google OAuth2 库应该比您尝试安装的大库小。
答案 1 :(得分:0)
首先使用任何小于 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