DynamoOps
Schema e infraestrutura

Exportar schema (IaC)

Transforme uma tabela existente em código de infraestrutura. Copie o schema como CloudFormation YAML, Terraform HCL ou Pulumi TypeScript, incluindo atributos, chaves, GSIs, LSIs e TTL.

O diálogo Export Schema

Clique em Schema na barra de informações da tabela. O diálogo tem três abas de formato e uma visualização de código somente leitura, gerada inteiramente na sua máquina a partir da descrição da tabela já carregada. Copy to Clipboard copia o documento inteiro para a área de transferência.

Export Schema com a aba Terraform selecionada.
AWSTemplateFormatVersion: '2010-09-09'
Description: DynamoDB table schema exported from DynamoOps
Resources:
  Orders:
    Type: AWS::DynamoDB::Table
    Properties:
      TableName: orders
      BillingMode: PAY_PER_REQUEST
      AttributeDefinitions:
        - AttributeName: customerId
          AttributeType: S
        - AttributeName: orderDate
          AttributeType: S
        - AttributeName: status
          AttributeType: S
      KeySchema:
        - AttributeName: customerId
          KeyType: HASH
        - AttributeName: orderDate
          KeyType: RANGE
      GlobalSecondaryIndexes:
        - IndexName: status-index
          KeySchema:
            - AttributeName: status
              KeyType: HASH
          Projection:
            ProjectionType: ALL
Outputs:
  OrdersArn:
    Value: !GetAtt Orders.Arn
    Export:
      Name: !Sub '${AWS::StackName}-orders-arn'

O que está incluído

IncluídoNão incluído
Nome da tabela e modo de cobrançaValores de capacidade provisionada de leitura e escrita
Definições de atributos e schema de chavesEspecificação de stream
Índices secundários globais com chaves, tipo de projeção e atributos não chaveConfigurações de criptografia (SSE/KMS)
Índices secundários locaisRecuperação point-in-time, classe de tabela, proteção contra exclusão
Bloco de TTL quando a descrição indica TTL ativadoRéplicas de global tables e as suas tags reais da AWS
  • Terraform e Pulumi adicionam a tag ManagedBy = "DynamoOps"; o CloudFormation adiciona um bloco Outputs que exporta o ARN da tabela.
  • Os nomes dos recursos derivam do nome da tabela: alfanumérico para o logical ID do CloudFormation, minúsculas com sublinhados para o Terraform e para a variável do Pulumi.
Tabelas provisionadas precisam de um bloco de capacidade
A exportação sempre grava o modo de cobrança encontrado, mas nunca os valores de capacidade. Se a tabela de origem for provisionada, adicione read_capacity e write_capacity (ou os equivalentes no CloudFormation e no Pulumi) antes de aplicar, ou altere o recurso para sob demanda.

Fluxo de trabalho sugerido

  • Prototipe a tabela e seus índices no DynamoOps em uma conta de desenvolvimento.
  • Exporte o schema, cole-o no seu repositório de infraestrutura e revise o diff.
  • Importe a tabela existente para o state (terraform import ou pulumi import) se ela deve ser mantida, ou deixe o IaC recriá-la no próximo ambiente.
  • Gere a camada de acesso a dados correspondente com o gerador de SDK.

Relacionados