3 回答
TA贡献1848条经验 获得超10个赞
您是否尝试过将 dynamoDB 终端节点设置为正确的系统,请参阅 https://docs.aws.amazon.com/general/latest/gr/rande.html。
在您的情况下,它可能是.dynamodb.us-east-1.amazonaws.com
您也可以使用正确的访问密钥和秘密访问密钥。
TA贡献1775条经验 获得超11个赞
只需更改端点(对于远程数据库为空)和凭据/密钥:
amazon.dynamodb.endpoint=[leave empty if using AWS, or http://localhost:[dynamodb port] if using local ]
amazon.aws.accesskey=[your AWS access key if using AWS or arbitrary text if using local]
amazon.aws.secretkey=[your AWS secret key if using AWS or arbitrary text if using local]
这里有一些例子:https://tech.smartling.com/getting-started-with-amazon-dynamodb-and-java-universal-language-850fa1c8a902
TA贡献1804条经验 获得超8个赞
要从本地系统连接到 AWS 上的 DynamoDB,请使用以下配置。下面的示例连接到US_EAST_1区域。替换为运行 DynamoDb 的 aws 区域。
@Configuration
@EnableDynamoDBRepositories(basePackageClasses = YourRepository.class)
public class DynamoDBConfiguration {
@Value("${aws.access.key}")
private String awsAccessKey;
@Value("${aws.secret.key}")
private String awsSecretKey;
@Bean
public AmazonDynamoDB amazonDynamoDB() {
return AmazonDynamoDBClientBuilder.standard()
.withCredentials(awsCredentialsProvider())
.withRegion(Regions.US_EAST_1).build();
}
private AWSCredentialsProvider awsCredentialsProvider(){
return new AWSStaticCredentialsProvider(
new BasicAWSCredentials(awsAccessKey, awsSecretKey));
}
}
将以下属性添加到应用程序.properties 中
aws.access.key = <YOUR_AWS_ACCESS_KEY>
aws.secret.key = <YOUR_AWS_SECRET_KEY>
注意:仅当您的 IAM 角色有权使用上述凭证访问服务时,上述代码才有效。
如果要在 aws EC2 实例中部署微服务,则就像在 aws 中使用 DynamoDB 访问一样。在大多数情况下,它将在同一个aws账户和同一个aws区域中使用。在这种情况下,您无需提供任何详细信息。请参阅下面的配置类。这就是你所需要的。
import org.socialsignin.spring.data.dynamodb.repository.config.EnableDynamoDBRepositories;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
import com.company.project.dao.YourRepository;
@Configuration
@EnableDynamoDBRepositories(basePackageClasses = YourRepository.class)
public class DynamoDBConfiguration {
@Bean
public AmazonDynamoDB amazonDynamoDB() {
return AmazonDynamoDBClientBuilder.standard().build();
}
}
但是,当区域更改时,您必须在配置中传递区域值,如下所示。
@Configuration
@EnableDynamoDBRepositories(basePackageClasses = YourRepository.class)
public class DynamoDBConfiguration {
@Bean
public AmazonDynamoDB amazonDynamoDB() {
return AmazonDynamoDBClientBuilder.standard()
.withRegion(Regions.US_EAST_1).build();
}
}
关于授权,不需要访问密钥和密钥。必须在 EC2 端配置 IAM 角色才能访问 DynamoDB 实例。
添加回答
举报