使用Lambda和Aurora Postgresql时如何处理数据库架构迁移?

Joey Yi Zhao

我正在lambda上部署应用程序,并使用aurora postgresql作为数据库。在开发过程中,数据库模式经常更改,因此我正在寻找一种迁移模式的方法。我知道flyway可以胜任这项工作,但对于部署在EC2实例而不是lambda上的应用程序来说,它可以正常工作。在lambda中完成工作的最佳方法是什么?

我可以想到一种解决方法。我的lambda已typescript插入因此它在nodejs环境中运行。

柯德斯坦

我正在使用loopback4创建我的模型和数据库架构。我有一个AWS Custom资源,该资源称为处理程序以将架构迁移到RDS。这是您需要做的:

  1. 为RDS 1.1创建一个安全组。添加入站规则:允许来自lambda SG的TCP 3306 1.2。添加出站规则:允许所有协议,所有端口
  2. 为lambda 2.1创建一个安全组。添加出站规则:允许所有协议,所有端口

这是我使用CDK的代码:

/** Lambda Security Group */
const lambdaSecurityGroup = new SecurityGroup(this, "LambdaSecurityGroup", {
  securityGroupName: "lambda-security-group",
  description: "Lambda security group",
  vpc: vpc,
  allowAllOutbound: true,
});

/** Security Group */
const securityGroup = new SecurityGroup(this, "SecurityGroup", {
  securityGroupName: "rds-security-group",
  description: "instance security group",
  vpc: vpc,
  allowAllOutbound: true,
});
/** Security Group Inbound rules - Lambda security group*/
securityGroup.addIngressRule(
  SecurityGroup.fromSecurityGroupId(
    this,
    "LambdaSecurityGroupId",
    lambdaSecurityGroup.securityGroupId
  ),
  Port.tcp(config.DatabasePort),
  "Allow from Lambda security group on TCP 3306"
);
const customResourceMigrateProvider = new CustomResources.Provider(
  this,
  "CustomResourceMigrateProvider",
  {
    onEventHandler: new Function(this, "CustomResourceMigrateLambda", {
      runtime: Runtime.NODEJS_12_X,

      code: /*this.lambdaCode ||*/ Code.fromAsset("dist"),
      handler: "loopback/handlers/custom-resource-migrate.handler",
      timeout: Duration.seconds(30),
      vpc: vpc,
      vpcSubnets: { subnets: [appSubnet1aId, appSubnet1bId] },
      securityGroups: [lambdaSecurityGroup],
      environment: environmentVariables,
      role: customRole,
      layers: [layer],
    }),
    //isCompleteHandler: isComplete,
    logRetention: logs.RetentionDays.ONE_DAY,
  }
);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Liquibase时如何处理由自动更新脚本进行的数据库更改?

来自分类Dev

如何处理用户选项和mysql数据库

来自分类Dev

如何处理用户选项和mysql数据库

来自分类Dev

如何使用本机同步函数从 Amazon Aurora MySQL 数据库集群调用 Lambda 函数

来自分类Dev

如何处理使用 nodejs 查询和更新 SQL 数据库中的表的 CronJob?

来自分类Dev

使用Play和Slick时应如何处理数据库演变?我必须手动编写SQL吗?

来自分类Dev

使用Postgis对象迁移旧PostgreSQL数据库时出错

来自分类Dev

如何处理JodaTime和Android的时区数据库差异?

来自分类Dev

larker在laravel中如何处理数据库和模型?

来自分类Dev

如何使用船长鸭鸭处理 django 数据库迁移?

来自分类Dev

如何先使用代码在不进行迁移的情况下在实体框架中应用数据库架构更改

来自分类Dev

使用Django处理数据库迁移/升级

来自分类Dev

使用微服务时,不同的服务具有相似的实体要存储在数据库中,该如何处理?

来自分类Dev

使用微服务架构时如何保持数据库同步?

来自分类Dev

使用原始sql时,如何跟踪数据库架构更改?

来自分类Dev

在设计Rails数据库架构时如何避免使用关注点?

来自分类Dev

使用SQL Server数据工具时,如何处理错误消息“发生错误。目标架构处于未知状态。

来自分类Dev

如何处理数据库架构中的用户权限?

来自分类Dev

如何处理数据库架构中的用户权限?

来自分类Dev

使用dotnet ef迁移创建数据库时如何设置字符集?

来自分类Dev

使用fluentMigrator时如何仅对特定数据库名称运行迁移

来自分类Dev

如何处理接收到的数据以将其保存在数据库Laravel和Ajax中?

来自分类Dev

用户,数据库和架构在Teradata中如何关联?

来自分类Dev

使用 docker 容器时无法迁移 Django 数据库

来自分类Dev

使用 docker 容器时无法迁移 Django 数据库

来自分类Dev

如何在PHP中使用数据库架构?

来自分类Dev

如何使用NHibernate更新数据库架构

来自分类Dev

需求更改:使用数据库表而不是枚举。如何处理使用枚举值的现有记录?

来自分类Dev

如何使用.net核心中的依赖注入处理与dapper的postgresql数据库连接?

Related 相关文章

  1. 1

    使用Liquibase时如何处理由自动更新脚本进行的数据库更改?

  2. 2

    如何处理用户选项和mysql数据库

  3. 3

    如何处理用户选项和mysql数据库

  4. 4

    如何使用本机同步函数从 Amazon Aurora MySQL 数据库集群调用 Lambda 函数

  5. 5

    如何处理使用 nodejs 查询和更新 SQL 数据库中的表的 CronJob?

  6. 6

    使用Play和Slick时应如何处理数据库演变?我必须手动编写SQL吗?

  7. 7

    使用Postgis对象迁移旧PostgreSQL数据库时出错

  8. 8

    如何处理JodaTime和Android的时区数据库差异?

  9. 9

    larker在laravel中如何处理数据库和模型?

  10. 10

    如何使用船长鸭鸭处理 django 数据库迁移?

  11. 11

    如何先使用代码在不进行迁移的情况下在实体框架中应用数据库架构更改

  12. 12

    使用Django处理数据库迁移/升级

  13. 13

    使用微服务时,不同的服务具有相似的实体要存储在数据库中,该如何处理?

  14. 14

    使用微服务架构时如何保持数据库同步?

  15. 15

    使用原始sql时,如何跟踪数据库架构更改?

  16. 16

    在设计Rails数据库架构时如何避免使用关注点?

  17. 17

    使用SQL Server数据工具时,如何处理错误消息“发生错误。目标架构处于未知状态。

  18. 18

    如何处理数据库架构中的用户权限?

  19. 19

    如何处理数据库架构中的用户权限?

  20. 20

    使用dotnet ef迁移创建数据库时如何设置字符集?

  21. 21

    使用fluentMigrator时如何仅对特定数据库名称运行迁移

  22. 22

    如何处理接收到的数据以将其保存在数据库Laravel和Ajax中?

  23. 23

    用户,数据库和架构在Teradata中如何关联?

  24. 24

    使用 docker 容器时无法迁移 Django 数据库

  25. 25

    使用 docker 容器时无法迁移 Django 数据库

  26. 26

    如何在PHP中使用数据库架构?

  27. 27

    如何使用NHibernate更新数据库架构

  28. 28

    需求更改:使用数据库表而不是枚举。如何处理使用枚举值的现有记录?

  29. 29

    如何使用.net核心中的依赖注入处理与dapper的postgresql数据库连接?

热门标签

归档