繁体   English   中英

无法从 AWS Lambda 连接到 AWS DocumentDB(使用 Java)

[英]Not able to connect to AWS DocumentDB from AWS Lambda (using Java)

我想从 AWS Lambda(使用 Java)连接到 AWS DocumentDB 集群。 为集群启用了 TLS,因此我需要将证书导入到信任库。 无法找到有关如何进行的任何文件。

在连接到 documentDB 之前,您需要将https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem文件存储到 certstore,否则它将无法工作。

他们有很多在运行时使用代码导入证书的方法。

参考: 如何将 a.cer 证书导入 java 密钥库?

导入证书后,您可以连接到documentDB,参考代码可以在这里找到:-

https://docs.aws.amazon.com/documentdb/latest/developerguide/connect_programmatically.html

我鼓励您避免将证书打包为 Lambda 代码的一部分。 相反,您可以从 Amazon S3 动态获取它。 当证书轮换时,这将避免将来出现问题。 按照 python 示例:

#Function to download the current docdb certificate
    def getDocDbCertificate():
        try:
            print('Certificate')
            clientS3.Bucket('rds-downloads').download_file('rds-combined-ca-bundle.pem', '/tmp/rds-combined-ca-bundle.pem')
        except botocore.exceptions.ClientError as e:
            if e.response['Error']['Code'] == "404":
                print("The object does not exist.")
            else:
                raise

为此,您的 Lambda 角色需要权限才能通过 Internet 或 VPC 端点从 S3 和 S3 访问中获取 object。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM