Jie*_*eng 7 integration-testing amazon-dynamodb aws-sdk
我正在查看 DynamoDB Go SDK 文档,但找不到如何连接到本地版本的 DynamoDB。我错过了什么?
您想要使用 Config 的 Endpoint 属性:https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config
例如:
svc := dynamodb.New(mySession, aws.NewConfig().WithEndpoint("http://localhost:8000"))
Run Code Online (Sandbox Code Playgroud)
如果您确实想给本地计算机增加负担,您可以在本地下载并运行 AWS DynamoDB:
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.html
但没有必要。
相反,在针对 AWS 进行开发时,我一直习惯于Docker托管本地依赖项。我每天在通勤期间花费超过 4 个小时没有互联网连接。所以,线下开发必不可少。
从未使用过 Docker?这真的很容易。
然后运行这个:
docker run -d -p 8000:8000 -v /tmp/data:/data/ dwmkerr/dynamodb -dbPath /data/
Run Code Online (Sandbox Code Playgroud)
您将在 本地启动并运行 DynamoDB localhost:8000。对您的应用程序进行编码以使用配置文件,并将默认/本地开发配置文件设置为对 dynamodb 使用 localhost:8000 并运行测试。完毕。
我为我的所有应用程序 AWS 和 GCE 依赖项执行此操作,例如 AWS S3、Redis/ElasticCache、ElasticSearch 等。
有几个可用的“模拟”Docker 容器可以模仿这些在线服务。目标是找到一个适合您需求的容器,在本地运行并使用它。例如,虽然大多数可用的 AWS S3 docker 容器支持大部分 S3 API,但它们都不支持 S3 Turbo - 如果您考虑一下,这确实脱离了本地容器的上下文。尽管如此,请注意某些模拟容器可能具有的某些限制。
对于更复杂的依赖关系链,请阅读 Docker-Compose,这是一种使用单个命令编排一大堆依赖关系的方法:docker-compose up就是docker-compose down这样。
注意:Docker 文件系统通常是瞬态的,这意味着它们不会持久存在。在我之前的 DynamoDB Docker 容器示例中,它指定了一种在容器重新启动期间保留持久数据的方法。
如果您不关心持久数据(我不关心,这就是集成测试的用途 - 谁想保留几百万个测试帐户?),那么您可以运行:
docker run -d -p 8000:8000 dwmkerr/dynamodb
Run Code Online (Sandbox Code Playgroud)
当容器关闭时,所有更改都将丢失:非常适合本地开发和几百个集成测试!
| 归档时间: |
|
| 查看次数: |
4947 次 |
| 最近记录: |