AWS Lambda自定义触发器

Jos*_*nda 4 amazon-web-services aws-lambda

有人可以告诉我如何在AWS Lambda函数中访问AWS凭证吗?

我已经在互联网上进行了彻底的搜索,但是仍然找不到任何可以帮助我的东西。

我用Java编写函数。我认为我应该可以使用HandleRequest方法中的上下文对象访问凭据。

如果有帮助,我想调用DynamoDB客户端并将记录上载到数据库。

Gor*_*Tai 6

我最近也遇到了同样的问题。我认为,这当然是AWS的Java Lambda文档中的一个盲点。

假设您使用的是适用于Java文档的AWS开发工具包,那么Java中的此代码段应该对您有用:

DynamoDB dynamodb = new DynamoDB(
    new AmazonDynamoDBClient(new EnvironmentVariableCredentialsProvider()));
Run Code Online (Sandbox Code Playgroud)

主要收获是使用EnvironmentVariableCredentialsProvider访问所需的凭证,以访问AWS Lambda容器内的其他AWS资源。Lambda容器附带凭据作为环境变量,这足以检索它们。

注意:这将创建一个DynamoDB实例,该实例仅查看默认区域中的资源。要为特定区域创建一个,请使用以下方法(假设您要访问ap-northeast-1区域中的DynamoDB):

DynamoDB dynamodb = new DynamoDB(
    Regions.getRegion(Regions.AP_NORTHEAST_1).createClient(
        AmazonDynamoDBClient.class,
        new EnvironmentVariableCredentialsProvider(),
        new ClientConfiguration()));
Run Code Online (Sandbox Code Playgroud)