Создайте вторичный глобальный индекс для существующей таблицы DynamoDB с помощью CloudFormation

Таблица DynamoDB уже создана и работает в производственной среде. В соответствии с текущим вариантом использования планируется добавить новый вторичный глобальный индекс. Этого можно добиться с помощью AWS SDK, можно ли обновить таблицу DynamoDB с помощью сценария CloudFormation.

Любая помощь будет оценена по достоинству.


person Ravikumar    schedule 01.11.2019    source источник
comment
Вы не должны использовать облачную информацию для чего-то вроде этого. Если таблица была создана в первую очередь с помощью CF, вы можете изменить ресурс и развернуть его снова. Но CF не предназначен для изменения существующих ресурсов, не связанных с вашим стеком.   -  person 404    schedule 01.11.2019
comment
Возможный дубликат stackoverflow .com / questions / 54427486 /   -  person matt helliwell    schedule 02.11.2019
comment
Я могу создать политику автомасштабирования для той же существующей динамо-таблицы, используя CF, но не вторичный индекс. Это специфично для DynamoDB GSI, а не дублирует вопрос, указанный выше.   -  person Ravikumar    schedule 04.11.2019


Ответы (1)


создать новый или перезаписать текущий сценарий CloudFormation с помощью

Resources
 DDBTable:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: YOUR_EXISTING_TABLE_NAME
      AttributeDefinitions: #List out all existing cols here
        -
          AttributeName: "ColX" # hash key
          AttributeType: "S"
        -
          AttributeName: "ColY" # range key
          AttributeType: "S"
        -
          AttributeName: "ColZ" # used for your Global Secondary Index 
          AttributeType: "S"

      KeySchema: # List out your main Hash & Range Key
        -
          AttributeName: "ColX"
          KeyType: "HASH"
        -
          AttributeName: "ColY"
          KeyType: "RANGE"

      GlobalSecondaryIndexes: #  new Global Secondary Index
      - IndexName: INDEX_NAME
        KeySchema:
        - AttributeName: ColZ #different than your main table Hash Key
          KeyType: HASH
        Projection:
          ProjectionType: ALL

person Ethan Nguyen    schedule 01.11.2019
comment
Этот скрипт попытается создать таблицу с существующим_имя_таблицы и завершится неудачно с уже существующей таблицей. - person Ravikumar; 01.11.2019
comment
Надеюсь, что таблица изначально была создана с помощью CloudFormation. В противном случае невозможно взять существующие ресурсы и включить их в новый стек CloudFormation. - person Ethan Nguyen; 01.11.2019