小编Xax*_*axD的帖子

jQuery Mobile的离线/在线数据库身份验证/同步

情况:我有一个数据库和一个互动的网络应用程序,用于显示和更新科学数据表.我的任务是构建一个允许用户使用的移动应用程序

  1. 为跟踪目的进行身份验证和识别自己离线(使用存储在缓存中的预定义但动态的用户帐户和权限)
  2. 下载现场工作识别数据(可上网)
  3. 在现场制作和存储观察(无法访问互联网)
  4. 稍后将观察结果同步到在线数据库中

问题:对于管理此类应用程序而不依赖于一致的互联网访问,进行身份验证/下载/存储/上传必要数据的最佳方法是什么?如果两个人调整相同的读数,并且在同步之间发生一次更新,我如何跟踪哪些表和值已被更改,并防止更改丢失?

当前的思路:我目前关于碰撞控制的暂定策略是维护一个"同步"表,该表存储代表存储在sessionStorage中的每个在线数据库事务的JSON对象,并让应用程序在上传数据之前不断验证其同步,并检查此对象对特定主键更新的潜在冲突.我希望能够在编辑阶段锁定元组,但由于互联网访问不一致,这似乎是不可能的.

对不起,如果这是一个新问题,我是整个移动应用程序开发的新手......

tl; dr如何防止数据库的异步更改从进行和离线的移动应用程序覆盖/与另一个人对同一数据库的更改发生冲突?我如何验证没有网络连接的用户?

jquery html5 session-storage offline-caching jquery-mobile

5
推荐指数
1
解决办法
2851
查看次数

VPC 中的 Terraform Lambda(与 MongoDB Atlas 对等)连接 NAT 网关

我已经构建了一个 Terraform 配置,用于部署 MongoDB atlas 云集群,并使用我的 AWS 账户设置 VPC 对等点。terraform 配置将凭证存储在 AWS Secrets Manager 中。不幸的是,我的 Lambda 无法访问 Secrets Manager API 端点或 Atlas 上托管的 MongoDB 集群。我读到我需要在我的 VPC 上设置 NAT 网关才能访问公共互联网。我不是网络专业人士,我尝试添加一堆不同的配置但无济于事。请帮忙:

  1. 我是否需要为我的 VPC 设置 NAT 网关才能访问 Secrets Manager?或者我可以以某种方式将 Secret 托管在 VPC 中吗?这里的最佳实践是什么?
  2. 我是否需要为 Lambda 设置 NAT 网关才能访问 Atlas 托管的 MongoDB 集群,即使它们位于同一 VPC 上并且我已将 Lambda 所在的安全组列入白名单?
  3. 如何设置 NAT 网关以允许我的 Lambda 连接到 Terraform 中的 Atlas 集群?

理想情况下,我想尽可能地锁定与外部互联网的连接,但如果这不是一个选择,我可以接受任何可行的实现。

这是我的 Terraform 配置

variable "admin_profile" {
  type = string
  default = "superadmin"
}


variable "region" {
  type …
Run Code Online (Sandbox Code Playgroud)

amazon-vpc aws-lambda mongodb-atlas terraform-provider-aws aws-secrets-manager

3
推荐指数
1
解决办法
1644
查看次数

Redshift COPY 抛出错误,但“stl_load_errors”系统表未提供详细信息

当我尝试将 CSV 从 S3 复制到 Redshift 中的新表(通常适用于其他表)时,出现此错误

错误:加载到表“table_name”失败。有关详细信息,请检查“stl_load_errors”系统表。

但是,当我运行标准查询来调查 stl_load_errors 时

SELECT errors.tbl, info.table_id::integer, info.table_id, *
FROM stl_load_errors errors
INNER JOIN svv_table_info info
  ON errors.tbl = info.table_id 
Run Code Online (Sandbox Code Playgroud)

我没有看到任何与此副本相关的结果。我看到之前失败的 COPY 命令的错误,但没有一个与我感兴趣的最新命令相关。

amazon-redshift

2
推荐指数
1
解决办法
5100
查看次数