Observações sobre o uso do DynamoDB local - Amazon DynamoDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Observações sobre o uso do DynamoDB local

Com exceção do endpoint, as aplicações que são executadas com a versão para download do Amazon DynamoDB também devem funcionar com o serviço da Web do DynamoDB. No entanto, ao usar o DynamoDB localmente, você deve estar ciente do seguinte:

  • Se você usar a -sharedDb opção, o DynamoDB cria um único arquivo de banco de dados chamado .db. shared-local-instance Todos os programas que se conectam ao DynamoDB acessam este arquivo. Se você excluir o arquivo, perderá todos os dados armazenados nele.

  • Se você omitir-sharedDb, o arquivo do banco de dados será denominado myaccesskeyid_region.db, com o ID da chave de AWS acesso e a AWS região conforme aparecem na configuração do seu aplicativo. Se você excluir o arquivo, perderá todos os dados armazenados nele.

  • Se você usar a opção -inMemory, o DynamoDB não gravará nenhum arquivo de banco de dados. Em vez disso, todos os dados são gravados na memória, e eles não são salvos quando o DynamoDB é terminado.

  • Se você usar -inMemory, a opção -sharedDb também será necessária.

  • Se você usar a opção -optimizeDbBeforeStartup, também deverá especificar o parâmetro -dbPath para que o DynamoDB possa encontrar seu arquivo de banco de dados.

  • Os AWS SDKs do DynamoDB exigem que a configuração do aplicativo especifique um valor de chave de acesso e um valor de região. AWS A menos que você esteja usando a opção -sharedDb ou -inMemory, o DynamoDB usará esses valores para nomear o arquivo de banco de dados local. Esses valores não precisam ser AWS valores válidos para serem executados localmente. No entanto, pode ser conveniente usar valores válidos, de modo que você possa executar o código na nuvem mais tarde alterando o endpoint que você está usando.

  • O DynamoDB local sempre retorna nulo para billingModeSummary.

  • O DynamoDB local AWS_ACCESS_KEY_ID pode conter somente letras (A-Z, a-z) e números (0-9).

Opções de linha de comando

Você pode usar uma das seguintes opções de linha de comando com a versão para download do DynamoDB:

  • -corsvalue— Permite suporte para compartilhamento de recursos de origem cruzada (CORS) para. JavaScript Você deve fornecer uma lista de “permissões” de domínios específicos separados por vírgulas. A configuração padrão de -cors é um asterisco (*), que permite acesso público.

  • -dbPath value: o diretório em que o DynamoDB grava seu arquivo de banco de dados. Se você não especificar essa opção, o arquivo será gravado no diretório atual. Não é possível especificar -dbPath e -inMemory ao mesmo tempo.

  • -delayTransientStatuses: faz com que o DynamoDB introduza atrasos em determinadas operações. O DynamoDB (versão para download) pode executar algumas tarefas quase instantaneamente, como criar/atualizar/excluir operações em tabelas e índices. No entanto, o serviço DynamoDB requer mais tempo para essas tarefas. A definição desse parâmetro ajuda o DynamoDB em execução em seu computador a simular o comportamento do serviço da Web DynamoDB de maneira mais precisa. (No momento, esse parâmetro apresenta atrasos apenas para índices secundários globais que estão no status CREATING ou DELETING.)

  • -help: imprime um resumo de uso e opções.

  • -inMemory: o DynamoDB é executado na memória, em vez de usar um arquivo de banco de dados. Quando você interrompe o DynamoDB, nenhum dos dados é salvo. Não é possível especificar -dbPath e -inMemory ao mesmo tempo.

  • -optimizeDbBeforeStartup: otimiza as tabelas de banco de dados subjacentes antes de iniciar o DynamoDB no seu computador. Você também deve especificar -dbPath ao usar este parâmetro.

  • -port value: o número da porta que o DynamoDB usa para se comunicar com sua aplicação. Se você não especificar essa opção, a porta padrão será 8000.

    nota

    O DynamoDB usa a porta 8000 por padrão. Se a porta 8000 estiver indisponível, este comando lançará uma exceção. Você pode usar a opção -port para especificar um número de porta diferente. Para obter uma lista completa das opções de tempo de execução do DynamoDB, incluindo -port, digite este comando:

    java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -help

  • -sharedDb: se você especificar -sharedDb, o DynamoDB usará um único arquivo de banco de dados, em vez de usar arquivos separados para cada credencial e região.

  • -disableTelemetry: quando especificada, o DynamoDB local não enviará nenhuma telemetria.

  • -version— Imprime a versão local do DynamoDB.

Definir o endpoint local

Por padrão, os AWS SDKs e as ferramentas usam endpoints para o serviço web Amazon DynamoDB. Para usar os SDKs e as ferramentas com as versões para download do DynamoDB, especifique o endpoint local:

http://localhost:8000

AWS Command Line Interface

Você pode usar o AWS Command Line Interface (AWS CLI) para interagir com o DynamoDB disponível para download. Por exemplo, use-o para executar todas as etapas em Criar tabelas e carregar dados para exemplos de código no DynamoDB.

Para acessar o DynamoDB em execução localmente, use o parâmetro --endpoint-url. Veja a seguir um exemplo de uso do AWS CLI para listar as tabelas no DynamoDB em seu computador.

aws dynamodb list-tables --endpoint-url http://localhost:8000
nota

Não é AWS CLI possível usar a versão para download do DynamoDB como endpoint padrão. Portanto, você deve especificar --endpoint-url com cada AWS CLI comando.

AWS SDKs

A maneira como você especifica um endpoint depende da linguagem de programação e do AWS SDK que você está usando. As seções a seguir descrevem como fazer isso:

nota

Para obter exemplos de outras linguagens de programação, consulte Conceitos básicos do DynamoDB e dos SDKs da AWS.

Diferenças entre o DynamoDB para download e o serviço da Web DynamoDB

A versão para download do DynamoDB deve ser usada somente para testes e desenvolvimento. Em comparação, o serviço da Web DynamoDB é um serviço gerenciado com recursos de escalabilidade, disponibilidade e durabilidade que o tornam ideal para uso no ambiente de produção.

A versão para download do DynamoDB difere do serviço da Web das seguintes formas:

  • Regiões da AWS e distintas não Contas da AWS são suportadas no nível do cliente.

  • As configurações de throughput provisionado são ignoradas no DynamoDB para download, embora a operação CreateTable as exija. Em CreateTable, você pode especificar quaisquer números desejados para o throughput de leitura e gravação provisionado, mesmo que esses números não sejam usados. Você pode chamar UpdateTable quantas vezes quiser por dia. No entanto, todas as alterações nos valores do throughput provisionado são ignoradas.

  • As operações Scan são executadas sequencialmente. Verificações paralelas não são aceitas. Os parâmetros Segment e TotalSegments da operação Scan são ignorados.

  • A velocidade das operações de leitura e gravação nos dados da tabela é limitada apenas pela velocidade do computador. As operações CreateTable, UpdateTable e DeleteTable ocorrem imediatamente, e o estado da tabela é sempre ACTIVE. As operações UpdateTable que alteram apenas as configurações de throughput provisionado em tabelas ou índices secundários globais ocorrem imediatamente. Se uma operação UpdateTable criar ou excluir qualquer índice secundário global, esses índices farão uma transição pelos estados normais (como CREATING e DELETING, respectivamente) antes de passarem para um estado ACTIVE. A tabela permanece no estado ACTIVE durante esse tempo.

  • As operações de leitura são eventualmente consistentes. No entanto, devido à velocidade do DynamoDB em execução no seu computador, a maioria das leituras parecerão ser fortemente consistentes.

  • As métricas de coleção de itens e os tamanhos de coleção de itens não são controlados. Nas respostas de operação, nulos são retornados em vez de métricas de coleção de itens.

  • No DynamoDB, há um limite de 1 MB em dados retornados por conjunto de resultados. Tanto o serviço da Web DynamoDB quanto a versão para download impõem esse limite. No entanto, ao consultar um índice, o serviço DynamoDB calcula apenas o tamanho da chave e dos atributos projetados. Por outro lado, a versão para download do DynamoDB calcula o tamanho do item inteiro.

  • Se você estiver usando o DynamoDB Streams, a taxa na qual fragmentos são criados poderá ser diferente. No serviço da Web DynamoDB, o comportamento de criação de fragmentos é parcialmente influenciado pela atividade da partição da tabela. Quando o DynamoDB é executado localmente, não há particionamento de tabelas. Em qualquer um dos casos, os fragmentos são efêmeros, portanto, seu aplicativo não deve ser dependente do comportamento do fragmento.

  • TransactionConflictExceptionsnão são lançados pelo DynamoDB para APIs transacionais que pode ser baixado. Recomendamos o uso de um framework de imitação Java para simular TransactionConflictExceptions no manipulador do DynamoDB para testar como o aplicativo responde a transações em conflito.

  • No serviço web do DynamoDB, independentemente de serem acessados pelo console ou pelo, os nomes das tabelas diferenciam AWS CLI maiúsculas de minúsculas. Uma tabela chamada Authors e outra chamada authors podem existir como tabelas separadas. Na versão que pode ser obtida por download, os nomes de tabelas não diferenciam maiúsculas de minúsculas, e a criação dessas duas tabelas resulta em erro.

  • A marcação não é suportada na versão para download do DynamoDB.

  • A versão para download do DynamoDB ignora o parâmetro Limit em. ExecuteStatement