如何从 lambda 连接到 dynamodb

pho*_*010 2 java amazon-dynamodb aws-lambda

我正在尝试从 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();
Run Code Online (Sandbox Code Playgroud)

Bar*_*rtz 5

默认情况下,您的函数使用其角色来运行和进行 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。