0

Wir entwickeln eine Java Spring Boot-App mit DynamoDB. Ich versuche, einige Tabellen in DynamoDB zu erstellen, indem Sie .exitextensions verwenden. Bisher konnte ich die generierte JAR-Datei mit dem .ebextensions-Ordner aus eb cli bereitstellen. Im Inneren habe ich eine Database.config-Datei mit folgendem Inhalt:AWS Beanstalk .ebextensions-Konfiguration für DynamoDB-Tabellen

Resources: 
Book: 
    Type: AWS::DynamoDB::Table 
    Properties: 
    TableName: Book 
    KeySchema: 
     HashKeyElement: {AttributeName: id, AttributeType: S} 
    ProvisionedThroughput: {ReadCapacityUnits: 1, WriteCapacityUnits: 1} 

Subject: 
    Type: AWS::DynamoDB::Table 
    Properties: 
    TableName: Subject 
    KeySchema: 
     HashKeyElement: {AttributeName: id, AttributeType: S} 
    ProvisionedThroughput: {ReadCapacityUnits: 1, WriteCapacityUnits: 1} 

User: 
    Type: AWS::DynamoDB::Table 
    Properties: 
    TableName: User 
    KeySchema: 
     HashKeyElement: {AttributeName: id, AttributeType: S} 
    ProvisionedThroughput: {ReadCapacityUnits: 1, WriteCapacityUnits: 1} 

Aus irgendeinem Grund nur die letzte Tabelle aus der Liste (Benutzer) erstellt wird. Irgendeine Idee, warum die anderen zwei nicht erstellt werden? Wenn ich nur eines davon im Skript aufbewahre, wird dieses wie erwartet erstellt.

Hat jemand eine bessere Idee zum Erstellen und Aktualisieren von DynamoDB-Tabellen in einer neuen Bereitstellung? Die Konfigurationsdateien für .exitextensions sind nützlich, aber wir müssen sicherstellen, dass sie vor jeder Veröffentlichung die korrekten Informationen enthalten.

Danke, Cristian.

Antwort

0

Die Antwort von AWS technischem Support: DynamoDB Erstellen von Tabellen mit ebextension Funktion von Elastic Bean Stalk

Ich verstehe, dass Sie Probleme haben, während durch CLI-Tools bereitstellen. Um zu verstehen, warum dies passiert ist, ist es wichtig zu verstehen, dass Elastic Bean Stalk CloudFormation verwendet, um Ressourcen und Einstellungen zu verbessern. Mir ist aufgefallen, dass die Tabellen [User, Book, Subject] ursprünglich aus einem früheren CloudFormation-Stack erstellt wurden, in diesem Fall aus einem früheren Beanstalk-Stack. Da die Tabellen im früheren Stapel erstellt wurden, ist die neuere Erstellung fehlgeschlagen und hat versucht, einen Rollback durchzuführen. In diesem Prozess des Zurückrollens löschte es Ressourcen aus früherer Formation, da ein Fehler aufgetreten war und die Tabellen denselben Namen hatten. Dieser Fehler wurde unserem internen Team gemeldet. Ich verstehe, dass Sie sich derzeit in der Testphase befinden und eine Migration zu AWS durchführen. Ich würde empfehlen, den zugehörigen Beanstalk-Stack [1] neu zu erstellen und die Bereitstellung erneut zu starten, ohne die Ressourcennamen für DynamoDB-Tabellen zu teilen.

Verwandte Themen