У меня есть набор служб REST на основе Quarkus, которые используют DynamoDB для сохранения данных. Я реализовал это, используя DynamoDBMapper
, и у меня нет проблем с моим кодом при работе в режиме JVM. Однако, когда я пытаюсь создать и запустить собственный образ, я получаю ошибки отображения DynamoDB.
Мой код сущности выглядит так:
@DynamoDBTable(tableName = "MyTable")
public class MyEntity {
/**
*
*/
private static final long serialVersionUID = -4532872175331494789L;
@DynamoDBHashKey(attributeName = "pk")
private String partitionKey = null;
@DynamoDBRangeKey(attributeName = "sk")
private String rangeKey = null;
...
}
Я создаю свою таблицу при запуске, как это ...
AmazonDynamoDB client = ...
DynamoDB dynamoDB = new DynamoDB(client);
String accessKey = "xxx";
String secretKey = "yyy";
AWSCredentials creds = new BasicAWSCredentials(accessKey, secretKey);
AWSCredentialsProvider credProvider = new AWSStaticCredentialsProvider(creds);
DynamoDBMapper mapper = new DynamoDBMapper(client, credProvider);
CreateTableRequest req = mapper.generateCreateTableRequest(MyEntity.class);
client.createTable(req);
Опять же, в режиме JVM этот код работает без проблем. Однако, если я создаю собственный образ и запускаю его, я вижу следующее исключение:
11:20:48 ERROR [io.quarkus.application] Failed to start application: com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMappingException: MyEntity; no mapping for HASH key
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel.hashKey(DynamoDBMapperTableModel.java:119)
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapperTableModel$Builder.build(DynamoDBMapperTableModel.java:449)
at com.amazonaws.services.dynamodbv2.datamodeling.StandardModelFactories$StandardTableFactory.getTable(StandardModelFactories.java:107)
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.getTableModel(DynamoDBMapper.java:408)
at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.generateCreateTableRequest(DynamoDBMapper.java:2268)
at com.amazonaws.services.dynamodbv2.datamodeling.AbstractDynamoDBMapper.generateCreateTableRequest(AbstractDynamoDBMapper.java:339)
at com.myapp.persistence.DynamoDBTableInitializer.observeStartup(DynamoDBTableInitializer.java:93)
at com.myapp.persistence.DynamoDBTableInitializer_Observer_observeStartup_988ebae54ee676255a64ec2d4203a1bb713ccc8e.notify(DynamoDBTableInitializer_Observer_observeStartup_988ebae54ee676255a64ec2d4203a1bb713ccc8e.zig:111)
at io.quarkus.arc.impl.EventImpl$Notifier.notifyObservers(EventImpl.java:282)
at io.quarkus.arc.impl.EventImpl$Notifier.notify(EventImpl.java:267)
at io.quarkus.arc.impl.EventImpl.fire(EventImpl.java:69)
at io.quarkus.arc.runtime.LifecycleEventRunner.fireStartupEvent(LifecycleEventRunner.java:23)
at io.quarkus.arc.runtime.ArcRecorder.handleLifecycleEvents(ArcRecorder.java:108)
at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent78.deploy_0(LifecycleEventsBuildStep$startupEvent78.zig:77)
at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent78.deploy(LifecycleEventsBuildStep$startupEvent78.zig:36)
at io.quarkus.runner.ApplicationImpl.doStart(ApplicationImpl.zig:285)
at io.quarkus.runtime.Application.start(Application.java:87)
at io.quarkus.runtime.Application.run(Application.java:210)
at io.quarkus.runner.GeneratedMain.main(GeneratedMain.zig:41)
Мой ключ HA SH четко сопоставлен с моим классом сущности, поэтому я не знаю, почему я ' Я получаю эту ошибку. Кто-нибудь может порекомендовать какие-либо советы по устранению неполадок или дать представление о том, что происходит?