У меня следующая ошибка.
Бессерверная: операция не удалась!
Serverless Error ---------------------------------------
An error occurred: phoneNumberTable - CloudFormation cannot update a stack when a custom-named resource requires replacing. Rename mysite-api-phonenumber-dev and update the stack again…
Я попытался удалить базу данных, чтобы проверить, можно ли ее воссоздать, но она по-прежнему выдает ту же ошибку и не переделывает базу данных? Что мне здесь делать?
Я недавно изменил в своем файле serverless.yml следующее для ресурса.
phoneNumberTable: #This table is used to track phone numbers used in the system
Type: AWS::DynamoDB::Table
Properties:
TableName: ${self:custom.phoneNumberTable}
AttributeDefinitions: #UserID in this case will be created once and constantly updated as it changes with status regarding the user.
- AttributeName: phoneNumber
AttributeType: S
KeySchema:
- AttributeName: phoneNumber
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: ${self:custom.dynamoDbCapacityUnits.${self:custom.pstage}}
WriteCapacityUnits: ${self:custom.dynamoDbCapacityUnits.${self:custom.pstage}}
Я случайно создал его с userId, когда копировал и вставлял, поэтому я изменил его на phoneNumber для хеш-ключа, но теперь это изменение не отразится!
Редактировать::
Я нашел решение, но оно ужасное. Если я сделаю sls remove --stage dev, он удалит все для моей стадии, но буквально все ... тогда мне нужно выполнить sls deploy --stage dev, чтобы начать развертывание заново, тем временем моя база данных очищается от всего данные ... должен быть как-то лучший способ.