java - 如何从 lambda 连接到 dynamodb

标签 java aws-lambda amazon-dynamodb

我正在尝试从 java lambda 函数连接到 DynamoDB,它在本地使用 aws profile ~/.aws/credentials。由于我无法在凭证文件中设置配置文件详细信息,这在 AWS 环境中将如何工作?

private static AmazonDynamoDB dynamoClient = AmazonDynamoDBClientBuilder.standard()
        .withEndpointConfiguration(
                new AwsClientBuilder.EndpointConfiguration("https://dynamodb.us-west-2.amazonaws.com", "us-west-2"))
        .withCredentials(new EnvironmentVariableCredentialsProvider()).build();

最佳答案

默认情况下,您的函数使用其角色来运行和进行 API 调用。 在本例中,您设置 .withCredentials(new EnvironmentVariableCredentialsProvider()),这意味着 Lambda 正在查看 AWS_ACCESS_KEY_ID(或 AWS_ACCESS_KEY),并且AWS_SECRET_KEY(或AWS_SECRET_ACCESS_KEY)环境变量。

所以你的两个选择是:

  1. 删除 .withCredentials(new EnvironmentVariableCredentialsProvider()) 并为具有与函数逻辑匹配的权限的函数配置适当的角色。
  2. 向您的函数提供 AWS_ACCESS_KEY_IDAWS_SECRET_KEY

除非您有充分的理由,否则请选择选项 1。

关于java - 如何从 lambda 连接到 dynamodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54166300/

相关文章:

java - 有人能解释一下 Java 中泛型中原始类型的使用吗?

java - DynamoDB 中不区分大小写的查询

java - 如何判断java/android中按钮 View 是否存在

java - 打印出过滤流对象的一些字段

amazon-web-services - 如何使用 CloudFormation 中的访问 key 和 key 保护 AWS API Gateway 的安全?

amazon-web-services - 如何从 AWS CLI 打印某个 Lambda 函数的最新 Cloudwatch 日志?

amazon-web-services - 如何将 VPC 和安全组分配给 AWS CDK 中的 Lambda?

amazon-web-services - 如何在 AWS Api 网关映射模板中使用 IF 条件。我可以在不使用 foreach 的情况下使用 if 条件吗?

python - AWS DynamoDB 检索整个表

java - 启动、更新 AWS IOT 作业的权限