通过 CloudFormation 在 AWS 上用于 DynamoDB 存储 运行 的 Datomic 连接字符串是什么?

What is the Datomic connection string for DynamoDB storage running on AWS via CloudFormation?

我的 Datomic DynamoDB 存储 URI 是什么?

我按照 Running on AWS 的 Datomic 文档在 CloudFormation 上创建了一个事务处理程序。我花了很长时间寻找 EC2 交易者 IP,但显然交易者详细信息已写入存储。

那我怎么知道它是什么?什么是最简单的测试方法,我可以连接到它而不会冒代码中的错误风险? bin/test-connection <datomic://some-uri> => "Connected to peer just fine." 这样的东西会很好。

(如果 Cognitect 的任何人正在阅读这篇文章,我想给你钱,但部署 Datomic 太难了。)

来自 Datomic documentation,DynamoDB 连接 URI 是:

(def uri "datomic:ddb://{region}/{your-system-name}/{db-name}")

对于凭据,您可以将 AWS_ACCESS_KEY_IDAWS_SECRET_KEY 导出到环境,或者将 ?aws_access_key_id={key}&aws_secret_key={secret} 添加到 URI 作为查询参数。

在您的 ddb-transactor.properties 文件中,您会将 aws-dynamodb-table= 属性 设置为 your-system-name。如果您已经启动了您的堆栈,您可以在此处的 dynamo 数据库控制台下查看 DDB table name/system 名称:

https://console.aws.amazon.com/dynamodb/home?region=us-east-1#tables:

要连接,您需要创建一个数据库。这是来自 REPL 的示例连接,我的 AWS 凭据来自环境。

Clojure 1.9.0-RC1
user=> (require '[datomic.api :as d])
nil
user=> (def uri "datomic:ddb://us-east-1/jaret-test-name/test")
#'user/uri
user=> (d/create-database uri)
true
user=> (def conn (d/connect uri))
#'user/conn
user=> (def db (d/db conn))
#'user/db

我还想指出,我能够从我的本地计算机连接,因为我在我的 cf-template.properties 文件中取消了 aws-ingress-cidrs=0.0.0.0/0 的注释。