首页 文章

DynamoDB表的AWS Beanstalk .ebextensions配置

提问于
浏览
0

我们正在使用DynamoDB开发Java Spring Boot应用程序 . 我正在尝试使用.ebextensions在DynamoDB中创建几个表 . 到目前为止,我设法使用eb cli中包含的.ebextensions文件夹部署生成的jar文件 . 在其中我有一个database.config文件,其中包含以下内容:

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}

由于某种原因,只创建列表中的最后一个表(用户) . 知道为什么没有创建其他两个?如果我只在脚本中保留其中一个,则按预期创建一个 .

有没有人有更好的想法在新部署上创建和更新DynamoDB表? .ebextensions配置文件很有用,但我们必须确保它们在每次发布之前都包含正确的信息 .

谢谢,克里斯蒂安 .

1 回答

  • 0

    AWS技术支持的答案:

    我了解您在部署到CLI工具时使用Elastic Bean Stalk的ebextension功能创建DynamoDB表时遇到问题 . 为了理解为什么会发生这种情况,了解Elastic Bean Stalk使用CloudFormation来适当的资源和设置非常重要 . 我注意到表[User,Book,Subject]最初是从早期的CloudFormation堆栈创建的,在这种情况下是早期的Beanstalk堆栈 . 由于表已在较早的堆栈中创建,因此较新的创建失败并尝试回滚 . 在这个回滚过程中,它从早期编队中删除了资源,因为失败并且表共享相同的名称 . 此错误已报告给我们的内部团队 . 展望未来,我了解您正在测试和迁移到AWS . 我建议重建与此相关的Beanstalk堆栈[1]并再次启动部署,而不共享DynamoDB表的资源名称 .

相关问题