3 回答

TA貢獻1848條經(jīng)驗 獲得超10個贊
您是否嘗試過將 dynamoDB 終端節(jié)點設(shè)置為正確的系統(tǒng),請參閱 https://docs.aws.amazon.com/general/latest/gr/rande.html。
在您的情況下,它可能是.dynamodb.us-east-1.amazonaws.com
您也可以使用正確的訪問密鑰和秘密訪問密鑰。

TA貢獻1775條經(jīng)驗 獲得超11個贊
只需更改端點(對于遠程數(shù)據(jù)庫為空)和憑據(jù)/密鑰:
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條經(jīng)驗 獲得超8個贊
要從本地系統(tǒng)連接到 AWS 上的 DynamoDB,請使用以下配置。下面的示例連接到US_EAST_1區(qū)域。替換為運行 DynamoDb 的 aws 區(qū)域。
@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));
}
}
將以下屬性添加到應(yīng)用程序.properties 中
aws.access.key = <YOUR_AWS_ACCESS_KEY>
aws.secret.key = <YOUR_AWS_SECRET_KEY>
注意:僅當(dāng)您的 IAM 角色有權(quán)使用上述憑證訪問服務(wù)時,上述代碼才有效。
如果要在 aws EC2 實例中部署微服務(wù),則就像在 aws 中使用 DynamoDB 訪問一樣。在大多數(shù)情況下,它將在同一個aws賬戶和同一個aws區(qū)域中使用。在這種情況下,您無需提供任何詳細信息。請參閱下面的配置類。這就是你所需要的。
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();
}
}
但是,當(dāng)區(qū)域更改時,您必須在配置中傳遞區(qū)域值,如下所示。
@Configuration
@EnableDynamoDBRepositories(basePackageClasses = YourRepository.class)
public class DynamoDBConfiguration {
@Bean
public AmazonDynamoDB amazonDynamoDB() {
return AmazonDynamoDBClientBuilder.standard()
.withRegion(Regions.US_EAST_1).build();
}
}
關(guān)于授權(quán),不需要訪問密鑰和密鑰。必須在 EC2 端配置 IAM 角色才能訪問 DynamoDB 實例。
添加回答
舉報