来自 docker 容器的 AWS DynamoDb 连接问题

Connection issue with AWS DynamoDb from docker container

我的客户端程序是从DynamoDbtable获取记录。我的二进制文件在主机上按预期工作,但如果我 运行 在 Linux 容器中使用相同的二进制文件,它会返回此错误:

Unable to connect to endpoint

我需要更改客户端代码或容器设置中的任何内容吗?

这可能有点晚,但如果其他人试图通过 docker 运行 AWS,默认情况下它会检查 SSL certificates when it connects。所以你需要初始化 AWS 客户端配置:

Aws::Client::ClientConfiguration config;
config.verifySSL = false;

如果您看到异常 and/or 日志提到某种 SSL 证书或连接错误,则可能是 SSL 问题。

简短的总结是你的 linux 盒子需要信任亚马逊的根 CA,你可以通过访问 https://dynamodb.eu-west-3.amazonaws.com.

来测试它

这里有更详细的文档来诊断和解决证书相关问题:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ats-certs.html