无法在 AWS lambda 函数中获取 AmazonDynamoDBClient
Not able to get AmazonDynamoDBClient in AWS lambda function
我正在尝试创建一个 lambda 函数来根据运动流中的记录更新 dynamodb table,它能够从流中正确获取记录,但无法获取 awsclient,因此无法进行任何操作dynamodb 的变化 table.
我获取客户的代码:
AWSCredentials awsCreds = new BasicAWSCredentials("accessid", "accesskey");
AmazonDynamoDBClient client = new AmazonDynamoDBClient(awsCreds).withRegion(Regions.US_WEST_2);
System.out.println("got the dbclient for uswest2");
DynamoDB dynamoDB = new DynamoDB(client);
//code to update tables in dynamodb
当我 运行 此代码获取客户端并在我的系统中进行更改时,它工作正常,但是当 运行 在 lambda 中使用时,它没有到达确认初始化的行客户。
我在 try catch 块中有这部分,我没有收到任何异常,函数调用超时,我尝试将 运行time 设置为 10 秒。
对于 lamdba 函数,您的凭据可从 EnvironmentVariableCredentialsProvider
获得。 lambda 容器直接随附您的凭据,您可以从环境变量中检索它们
以下代码应该适合您
AWSCredentials awsCreds = new EnvironmentVariableCredentialsProvider().getCredentials();
AmazonDynamoDBClient client = new AmazonDynamoDBClient(awsCreds).withRegion(Regions.US_WEST_2);
System.out.println("got the dbclient for uswest2");
DynamoDB dynamoDB = new DynamoDB(client);
//code to update tables in dynamodb
甚至这个还有另一个构造函数
AmazonDynamoDBClient client =
new AmazonDynamoDBClient(new EnvironmentVariableCredentialsProvider());
确保在您的 lambda 配置中,您 select 具有必要权限的 IAM 角色 运行 insert on dynamo
我正在尝试创建一个 lambda 函数来根据运动流中的记录更新 dynamodb table,它能够从流中正确获取记录,但无法获取 awsclient,因此无法进行任何操作dynamodb 的变化 table.
我获取客户的代码:
AWSCredentials awsCreds = new BasicAWSCredentials("accessid", "accesskey");
AmazonDynamoDBClient client = new AmazonDynamoDBClient(awsCreds).withRegion(Regions.US_WEST_2);
System.out.println("got the dbclient for uswest2");
DynamoDB dynamoDB = new DynamoDB(client);
//code to update tables in dynamodb
当我 运行 此代码获取客户端并在我的系统中进行更改时,它工作正常,但是当 运行 在 lambda 中使用时,它没有到达确认初始化的行客户。 我在 try catch 块中有这部分,我没有收到任何异常,函数调用超时,我尝试将 运行time 设置为 10 秒。
对于 lamdba 函数,您的凭据可从 EnvironmentVariableCredentialsProvider
获得。 lambda 容器直接随附您的凭据,您可以从环境变量中检索它们
以下代码应该适合您
AWSCredentials awsCreds = new EnvironmentVariableCredentialsProvider().getCredentials();
AmazonDynamoDBClient client = new AmazonDynamoDBClient(awsCreds).withRegion(Regions.US_WEST_2);
System.out.println("got the dbclient for uswest2");
DynamoDB dynamoDB = new DynamoDB(client);
//code to update tables in dynamodb
甚至这个还有另一个构造函数
AmazonDynamoDBClient client =
new AmazonDynamoDBClient(new EnvironmentVariableCredentialsProvider());
确保在您的 lambda 配置中,您 select 具有必要权限的 IAM 角色 运行 insert on dynamo