使用AWS lambda将数据保存到PostgreSQL数据库

发布于 2025-01-17 10:01:04 字数 363 浏览 1 评论 0原文

我刚开始使用 AWS,正在致力于将 ASP.NET 应用程序转换为无服务器架构。我尝试编写的 Lambda 函数之一是获取一个对象并将其保存到 PostgreSQL 数据库。通常,我使用实体框架执行此操作,但考虑到 Lambda 函数的范围限制,我不确定如何将 EF(如果可能)与 Lambda 函数一起使用。有谁知道这是否可行,如果可以,如何在 Lambda 函数中使用 EF?

我曾想过尝试构建一个在 CodeArtifact 上托管的库并导入模型和上下文类,但不确定这是否是好的或可行的想法或现在。对此有何想法?或者有人会推荐不同的方法吗?

编辑:如果您无法在 Lambda 中使用 EF,关于使用 Lambda 将数据发送到数据库的最佳实践有什么建议吗?

谢谢!

I am new to using AWS, and I am working on converting an ASP.NET application to a serverless architecture. One of the Lambda functions that I am trying to write is take an object and save it to a PostgreSQL database. Normally, I do this using Entity Framework, but seeing as to the limit in scope with Lambda functions, I am not sure how to use EF, if possible, with a Lambda function. Does anyone know if this is possible, and if so, how to use EF in a Lambda function?

I had a thought of trying to build a library hosted on CodeArtifact and import the models and context classes, but not sure if that is good or viable idea or now. Thoughts on that? Or would anyone recommended a different approach?

Edit: If you can't use EF in Lambda, any recommendations on best practice for using Lambda to send data to a database?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

阳光下的泡沫是彩色的 2025-01-24 10:01:05

如果有人想知道我之前问过的同样的事情,我刚刚完成了这个工作并找到了解决方案。这就是我所做的,希望这有帮助!

  1. 首先,我构建了一个帮助程序库,其中包含我想要在 Lambda 函数中使用的模型和 DbContext。我这样做是因为我想将来在其他几个 Lambda 中使用相同的模型。我将其发布为本地 NuGet 包。这最终将存储在 AWS Code Artifact 中。

  2. 使用 AWS Toolkit、.NET5 容器映像模板在 VS2019 中启动了一个新的 Lambda 项目。我将本地 NuGet 帮助程序库导入到项目中。

  3. 我使用构造函数在库上设置了 DbContext,以获取连接字符串(这是从存储在 S3 存储桶上的 JSON 导入的)。在 Lambda 中,我像平常一样调用 API,将响应解析到 DbContext 模型中,然后保存更改。

  4. 上传完成的 Lambda 后,我使用 EventBridge 安排 Lambda 每 24 小时触发一次。

如果您需要更多详细信息,请告诉我,我可以尝试写出更长的解释。

In case anyone is wondering the same thing I asked earlier, I just finished working this and found a solution. This is what I did, hopefully this helps!

  1. First I built a helper library that contained the models and DbContexts that I wanted to use in my Lambda function. I did it this way because I want to use the same models across a few other Lambda's in the future. I published it as a local NuGet package. This will eventually be stored in AWS Code Artifact.

  2. Started a new Lambda project in VS2019 using the AWS Toolkit, using the .NET5 Container image template. I imported the local NuGet helper library into the project.

  3. I set up the DbContext on the library with a constructor to take a connection string (this is imported from a JSON stored on an S3 bucket). In the Lambda, I call the API like you normally would, parse the response into the DbContext models and then save the changes.

  4. After uploading the completed Lambda, I use an EventBridge to schedule the Lambda to fire once every 24 hours.

Let me know if you need more details, and I can try and write out a longer explanation.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文