AmazonDynamoDBClientBuilder.standard 无法解析为类型

raf*_*iya 5 amazon-dynamodb aws-sdk

我正在尝试按照基本的 AWS 教程在 AWS 无服务器设置的 java 运行时环境中与 DynamoDB 交互。但是,由于某种原因,当我尝试创建新的 AmazonDynamoDBClientBuilder 时,eclipse 会抛出错误

我仔细检查了一下,看到 POM.xml 中记录了正确的依赖项,但是我仍然不断收到错误“AmazonDynamoDBClientBuilder.standard 无法解析为类型”

编码:

package com.serverless.demo.function;

import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;

import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
import com.amazonaws.services.dynamodbv2.document.DynamoDB;
import com.amazonaws.services.dynamodbv2.document.Table;
import com.amazonaws.services.dynamodbv2.model.AttributeDefinition;
import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
import com.amazonaws.services.dynamodbv2.model.KeyType;
import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput;
import com.amazonaws.services.dynamodbv2.model.ScalarAttributeType;


public class HelloWorld implements RequestHandler<String, String> {
    @Override
    public String handleRequest(String input, Context context) {

        AmazonDynamoDB client = new AmazonDynamoDBClientBuilder.standard().build();  

    }
}
Run Code Online (Sandbox Code Playgroud)

NS *_*oit 5

你能发布你的maven.xml吗?

您应该具有以下依赖项:

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-dynamodb</artifactId>
    <version>1.11.163</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

在 mvnrepository [此处]上检查存档的最新版本。

或者,maven 文件的结构如下:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk-bom</artifactId>
            <version>1.11.166</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-dynamodb</artifactId>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

请注意:

这个答案是在没有第二版 AWS 开发工具包时给出的。在 AWS SDK v2 中,您的类以software.amazon.awssdk. 它们不再驻留在com.amazonaws以 AWS SDK v1 中的前缀的包中。

使用 AWS SDK v2,您可以按如下方式设置 Maven BOM(物料清单):

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>software.amazon.awssdk</groupId>
            <artifactId>bom</artifactId>
            <version>2.20.78</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
Run Code Online (Sandbox Code Playgroud)

有关设置 Maven 项目的 AWS 文档,请查看[此处]。如需最新版本的 AWS BOM,请查看[此处]


小智 3

您不需要指定new,因为该standard()方法会为您执行实例化:

AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard().build();