小编use*_*595的帖子

将 Prisma 部署到 Github Actions 无法访问的数据库

我有一个依赖于 Prisma 模型的 NodeJS 后端,我想将其部署到我的生产数据库中。我的 CI/CD 管道如下所示:Github Actions 使用 webpack 构建代码,将捆绑包上传到 S3,并调用 AWS CodeDeploy。

然后,AWS CodeDeploy 在部署后端的 EC2 服务器上执行脚本,以安装捆绑包并配置所有内容。这些 EC2 服务器是唯一可以访问数据库的服务器,因为数据库不允许任何非来自 EC2 服务器的连接。

这意味着我无法yarn prisma migrate deploy从 Github Actions 执行,因为数据库将不允许此类连接。

在我看来,我有三个选择:

  1. 将 Github Actions 运行者的 IP 地址列入数据库白名单。出于安全原因,我最好不要这样做。
  2. 将我的存储库的完整源代码下载到 EC2 服务器,然后yarn install运行yarn prisma migrate deploy​​. 出于安全原因不想这样做,它会在部署中引入额外的风险,并且会减慢部署速度。
  3. 以某种方式将命令与迁移文件编译yarn prisma migrate deploy成捆绑包prisma,并在 EC2 服务器上执行。

你有什么建议?从上面的选项中,我更喜欢选项 3,但我还没有找到方法,因为我只找到了编译 prisma 客户端的方法,但我认为这不是我想要的。

先感谢您!

amazon-web-services node.js webpack prisma cicd

9
推荐指数
0
解决办法
315
查看次数

如何跟踪异步 AWS Lambda 调用的进度/状态?

我有一个 API,用于触发 AWS Lambda 作业。根据请求,API 使用InvocationType='Event'. 此后,我想定期轮询 AWS Lambda 作业是否已完成。

最适合我的架构的方法是将 Lambda 作业的标识符存储在数据库中,并定期检查作业是否完成及其输出是什么。但是,我无法找到如何做到这一点。

如何定期轮询 AWS Lambda 作业的结果,并在完成后查看输出?

我已经研究过使用InvocationType='RequestResponse',但这需要我存储未来,这是我无法在数据库中做到的。

boto amazon-web-services boto3 aws-lambda

4
推荐指数
1
解决办法
2621
查看次数

标签 统计

amazon-web-services ×2

aws-lambda ×1

boto ×1

boto3 ×1

cicd ×1

node.js ×1

prisma ×1

webpack ×1