Java 如何从lambda连接到dynamodb

Java 如何从lambda连接到dynamodb,java,aws-lambda,amazon-dynamodb,Java,Aws Lambda,Amazon Dynamodb,我正在尝试从java lambda函数连接到DynamoDB,它在本地使用aws profile~/.aws/credentials工作。在AWS环境中,由于我无法在凭据文件中设置配置文件详细信息,这将如何工作 private static AmazonDynamoDB dynamoClient = AmazonDynamoDBClientBuilder.standard() .withEndpointConfiguration( new AwsC

我正在尝试从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调用。 在本例中,您使用凭据(new environment VariableCredentials Provider())设置
,这意味着Lambda正在查看
AWS\u ACCESS\u KEY\u ID
(或
AWS\u ACCESS\u KEY
)和
AWS\u SECRET\u KEY
(或
AWS\u SECRET\u ACCESS\u KEY
)环境变量

因此,您的两个选择是:

  • 删除
    .withCredentials(新环境VariableCredentialsProvider())
    并为具有与函数逻辑匹配的权限的函数配置适当的角色
  • 为您的功能提供
    AWS\u访问密钥\u ID
    AWS\u保密密钥

  • 除非您有很好的理由,否则请使用选项1。

    默认情况下,您的函数使用其角色来运行和进行API调用。 在本例中,您使用凭据(new environment VariableCredentials Provider())设置
    ,这意味着Lambda正在查看
    AWS\u ACCESS\u KEY\u ID
    (或
    AWS\u ACCESS\u KEY
    )和
    AWS\u SECRET\u KEY
    (或
    AWS\u SECRET\u ACCESS\u KEY
    )环境变量

    因此,您的两个选择是:

  • 删除
    .withCredentials(新环境VariableCredentialsProvider())
    并为具有与函数逻辑匹配的权限的函数配置适当的角色
  • 为您的功能提供
    AWS\u访问密钥\u ID
    AWS\u保密密钥
  • 除非你有很好的理由,否则选择1