amazon-web-services - 如何挽救受损的 AWS Amplify 项目
问题描述
我已经按照本教程和 create-react-app开始了一个放大项目,并且顺利完成了身份验证设置步骤。
然后我尝试添加一个允许我在 DynamoDB 中发布/放置记录的 REST API 端点。这也是开箱即用的。
但是,我意识到我需要更改一些 dynamodb 字段的名称。我所做的更改只是重命名字段,如下面的差异(来自amplify/backend/storage/mytable/parameters.json
):
{
"tableName": "mytable",
- "partitionKeyName": "user_id",
+ "partitionKeyName": "userId",
"partitionKeyType": "S",
- "sortKeyName": "lesson_id",
+ "sortKeyName": "lessonId",
"sortKeyType": "S"
}
此更改虽然很小,但会导致后续amplify push
尝试失败并出现以下错误:
UPDATE_FAILED DynamoDBTable AWS::DynamoDB::Table Tue Mar 05 2019 16:36:25 GMT-0600 (CST) CloudFormation cannot update a stack when a custom-named resource requires replacing. Rename mytable-dev and update the stack again.
然后我(愚蠢地,我知道)删除了与该资源关联的 cloudformation 堆栈,认为这将允许我从头开始重新创建它:
aws cloudformation delete-stack --stack-name ${DYNAMODB_STACK_NAME}
但是,我仍然不能amplify push
,因为现在我收到此错误:
UPDATE_FAILED storagefactUserCellState AWS::CloudFormation::Stack Tue Mar 05 2019 16:40:20 GMT-0600 (CST) Stack:arn:aws:cloudformation:us-east-2:... is in DELETE_COMPLETE state and can not be updated.
我有两个问题:
有没有办法挽救这个项目(通过允许我创建 dynamodb 表)而无需从头开始重新创建所有内容?我将在这里尝试该方法,但这似乎是一件艰难的事情。
执行这些类型的表自定义/更改的最佳实践方法是什么,以便我将来不会遇到此类问题?我认为我只是在做错事,因为我已经习惯了将 yaml 文件放在 git 下并使用
kubectl apply
足以从大多数错误中恢复的 k8s 世界,但是很多放大文件都是.gitignore
d 并且云资源似乎更脆弱,所以我不确定如何在这个生态系统中使事情变得健壮和安全。
解决方案
推荐阅读
- css - 如何在离子上放置图标徽章?
- javascript - mobx 无法获得管理——在扩展类上?
- maven - Maven-surefire 插件,不包括并行测试
- html - 当我说向右浮动时,我的图像太靠右了,并且出现了一个滚动条
- c - 预期 'const csim_stats_t * {aka const struct
*}' 但参数的类型为 'csim_stats_t * {aka struct *}' - ruby-on-rails - 更新表单时的 ActiveRecord::AssociationTypeMismatch
- html - 汉堡按钮在点击时移动
- flutter - 浏览 dart 中的嵌套字典
- python-3.x - 使用 Python 和 Google API 编辑事件颜色
- python - 将路径添加到 PATH 环境变量不起作用