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

时间:2018-01-02 23:08:21

标签: clojure amazon-dynamodb connection-string datomic

我的Datomic DynamoDB存储URI是什么?

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

那我怎么知道它是什么?什么是最简单的测试方法我可以连接到它而不会冒我的代码中的错误?像bin/test-connection <datomic://some-uri> =&gt;这样的东西“连接到同行就好了。”会好的。

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

1 个答案:

答案 0 :(得分:4)

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表名称/系统名称:

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

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