Exemplos do DynamoDB que usam o Tools for PowerShell V4 - Ferramentas da AWS para PowerShell (versão 4)

A versão 5 (V5) do Ferramentas da AWS para PowerShell foi lançada!

Para começar a usar a nova versão do SDK, consulte o Guia do usuário do Ferramentas da AWS para PowerShell (V5), especialmente o tópico Migração para V5.

Exemplos do DynamoDB que usam o Tools for PowerShell V4

Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o Ferramentas da AWS para PowerShell V4 com o DynamoDB.

Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.

Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.

Tópicos

Ações

O código de exemplo a seguir mostra como usar Add-DDBIndexSchema.

Ferramentas para PowerShell V4

Exemplo 1: cria um objeto TableSchema vazio e adiciona uma nova definição de índice secundário local a ele antes de gravar o objeto TableSchema no pipeline.

$schema | Add-DDBIndexSchema -IndexName "LastPostIndex" -RangeKeyName "LastPostDateTime" -RangeKeyDataType "S" -ProjectionType "keys_only" $schema = New-DDBTableSchema

Saída:

AttributeSchema KeySchema LocalSecondaryIndexSchema --------------- --------- ------------------------- {LastPostDateTime} {} {LastPostIndex}

Exemplo 2: adiciona uma nova definição de índice secundário local ao objeto TableSchema fornecido antes de regravar o objeto TableSchema no pipeline. O objeto TableSchema também pode ser fornecido usando o parâmetro -Schema.

New-DDBTableSchema | Add-DDBIndexSchema -IndexName "LastPostIndex" -RangeKeyName "LastPostDateTime" -RangeKeyDataType "S" -ProjectionType "keys_only"

Saída:

AttributeSchema KeySchema LocalSecondaryIndexSchema --------------- --------- ------------------------- {LastPostDateTime} {} {LastPostIndex}
  • Para obter detalhes da API, consulte Add-DDBIndexSchema em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).

O código de exemplo a seguir mostra como usar Add-DDBKeySchema.

Ferramentas para PowerShell V4

Exemplo 1: cria um objeto TableSchema vazio e adiciona entradas de definição de chave e atributo a ele usando os dados de chave especificados antes de gravar o objeto TableSchema no pipeline. O tipo de chave é declarado como “HASH” por padrão; use o parâmetro -KeyType com um valor de “RANGE” para declarar uma chave de intervalo.

$schema = New-DDBTableSchema $schema | Add-DDBKeySchema -KeyName "ForumName" -KeyDataType "S"

Saída:

AttributeSchema KeySchema LocalSecondaryIndexSchema --------------- --------- ------------------------- {ForumName} {ForumName} {}

Exemplo 2: adiciona novas entradas de definição de chave e atributo ao objeto TableSchema fornecido antes de gravar o objeto TableSchema no pipeline. O tipo de chave é declarado como “HASH” por padrão; use o parâmetro -KeyType com um valor de “RANGE” para declarar uma chave de intervalo. O objeto TableSchema também pode ser fornecido usando o parâmetro -Schema.

New-DDBTableSchema | Add-DDBKeySchema -KeyName "ForumName" -KeyDataType "S"

Saída:

AttributeSchema KeySchema LocalSecondaryIndexSchema --------------- --------- ------------------------- {ForumName} {ForumName} {}
  • Para obter detalhes da API, consulte Add-DDBKeySchema em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).

O código de exemplo a seguir mostra como usar ConvertFrom-DDBItem.

Ferramentas para PowerShell V4

Exemplo 1: ConvertFrom-DDBItem é usado para converter o resultado de Get-DDBItem de uma tabela de hash de AttributeValues do DynamoDB em uma tabela de caracteres de tipos comuns, como string e duplo.

@{ SongTitle = 'Somewhere Down The Road' Artist = 'No One You Know' } | ConvertTo-DDBItem Get-DDBItem -TableName 'Music' -Key $key | ConvertFrom-DDBItem

Saída:

Name Value ---- ----- Genre Country Artist No One You Know Price 1.94 CriticRating 9 SongTitle Somewhere Down The Road AlbumTitle Somewhat Famous
  • Para obter detalhes da API, consulte ConvertFrom-DDBItem em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).

O código de exemplo a seguir mostra como usar ConvertTo-DDBItem.

Ferramentas para PowerShell V4

Exemplo 1: um exemplo de conversão de uma tabela de hash em um dicionário de valores de atributos do DynamoDB.

@{ SongTitle = 'Somewhere Down The Road' Artist = 'No One You Know' } | ConvertTo-DDBItem Key Value --- ----- SongTitle Amazon.DynamoDBv2.Model.AttributeValue Artist Amazon.DynamoDBv2.Model.AttributeValue

Exemplo 2: um exemplo de conversão de uma tabela de hash em um dicionário de valores de atributos do DynamoDB.

@{ MyMap = @{ MyString = 'my string' } MyStringSet = [System.Collections.Generic.HashSet[String]]@('my', 'string') MyNumericSet = [System.Collections.Generic.HashSet[Int]]@(1, 2, 3) MyBinarySet = [System.Collections.Generic.HashSet[System.IO.MemoryStream]]@( ([IO.MemoryStream]::new([Text.Encoding]::UTF8.GetBytes('my'))), ([IO.MemoryStream]::new([Text.Encoding]::UTF8.GetBytes('string'))) ) MyList1 = @('my', 'string') MyList2 = [System.Collections.Generic.List[Int]]@(1, 2) MyList3 = [System.Collections.ArrayList]@('one', 2, $true) } | ConvertTo-DDBItem

Saída:

Key Value --- ----- MyStringSet Amazon.DynamoDBv2.Model.AttributeValue MyList1 Amazon.DynamoDBv2.Model.AttributeValue MyNumericSet Amazon.DynamoDBv2.Model.AttributeValue MyList2 Amazon.DynamoDBv2.Model.AttributeValue MyBinarySet Amazon.DynamoDBv2.Model.AttributeValue MyMap Amazon.DynamoDBv2.Model.AttributeValue MyList3 Amazon.DynamoDBv2.Model.AttributeValue
  • Para obter detalhes da API, consulte ConvertTo-DDBItem em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).

O código de exemplo a seguir mostra como usar Get-DDBBatchItem.

Ferramentas para PowerShell V4

Exemplo 1: recebe o item com o SongTitle “Somewhere Down The Road” das tabelas “Music” e “Songs” do DynamoDB'.

$key = @{ SongTitle = 'Somewhere Down The Road' Artist = 'No One You Know' } | ConvertTo-DDBItem $keysAndAttributes = New-Object Amazon.DynamoDBv2.Model.KeysAndAttributes $list = New-Object 'System.Collections.Generic.List[System.Collections.Generic.Dictionary[String, Amazon.DynamoDBv2.Model.AttributeValue]]' $list.Add($key) $keysAndAttributes.Keys = $list $requestItem = @{ 'Music' = [Amazon.DynamoDBv2.Model.KeysAndAttributes]$keysAndAttributes 'Songs' = [Amazon.DynamoDBv2.Model.KeysAndAttributes]$keysAndAttributes } $batchItems = Get-DDBBatchItem -RequestItem $requestItem $batchItems.GetEnumerator() | ForEach-Object {$PSItem.Value} | ConvertFrom-DDBItem

Saída:

Name Value ---- ----- Artist No One You Know SongTitle Somewhere Down The Road AlbumTitle Somewhat Famous CriticRating 10 Genre Country Price 1.94 Artist No One You Know SongTitle Somewhere Down The Road AlbumTitle Somewhat Famous CriticRating 10 Genre Country Price 1.94
  • Para ver detalhes da API, consulte BatchGetItem na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).

O código de exemplo a seguir mostra como usar Get-DDBItem.

Ferramentas para PowerShell V4

Exemplo 1: exibe o item do DynamoDB com a chave de partição SongTitle e a chave de classificação Artist.

$key = @{ SongTitle = 'Somewhere Down The Road' Artist = 'No One You Know' } | ConvertTo-DDBItem Get-DDBItem -TableName 'Music' -Key $key | ConvertFrom-DDBItem

Saída:

Name Value ---- ----- Genre Country SongTitle Somewhere Down The Road Price 1.94 Artist No One You Know CriticRating 9 AlbumTitle Somewhat Famous
  • Para ver detalhes da API, consulte GetItem na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).

O código de exemplo a seguir mostra como usar Get-DDBTable.

Ferramentas para PowerShell V4

Exemplo 1: exibe detalhes da tabela especificada.

Get-DDBTable -TableName "myTable"
  • Para ver detalhes da API, consulte DescribeTable na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).

O código de exemplo a seguir mostra como usar Get-DDBTableList.

Ferramentas para PowerShell V4

Exemplo 1: exibe detalhes de todas as tabelas, iterando automaticamente até que o serviço indique que não existem mais tabelas.

Get-DDBTableList
  • Para ver detalhes da API, consulte ListTables na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).

O código de exemplo a seguir mostra como usar Invoke-DDBQuery.

Ferramentas para PowerShell V4

Exemplo 1: invoca uma consulta que exibe itens do DynamoDB com SongTitle e Artist especificados.

$invokeDDBQuery = @{ TableName = 'Music' KeyConditionExpression = ' SongTitle = :SongTitle and Artist = :Artist' ExpressionAttributeValues = @{ ':SongTitle' = 'Somewhere Down The Road' ':Artist' = 'No One You Know' } | ConvertTo-DDBItem } Invoke-DDBQuery @invokeDDBQuery | ConvertFrom-DDBItem

Saída:

Name Value ---- ----- Genre Country Artist No One You Know Price 1.94 CriticRating 9 SongTitle Somewhere Down The Road AlbumTitle Somewhat Famous
  • Para ver detalhes da API, consulte Query na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).

O código de exemplo a seguir mostra como usar Invoke-DDBScan.

Ferramentas para PowerShell V4

Exemplo 1: exibe todos os itens da tabela Music.

Invoke-DDBScan -TableName 'Music' | ConvertFrom-DDBItem

Saída:

Name Value ---- ----- Genre Country Artist No One You Know Price 1.94 CriticRating 9 SongTitle Somewhere Down The Road AlbumTitle Somewhat Famous Genre Country Artist No One You Know Price 1.98 CriticRating 8.4 SongTitle My Dog Spot AlbumTitle Hey Now

Exemplo 2: exibe itens na tabela Music com CriticRating maior ou igual a nove.

$scanFilter = @{ CriticRating = [Amazon.DynamoDBv2.Model.Condition]@{ AttributeValueList = @(@{N = '9'}) ComparisonOperator = 'GE' } } Invoke-DDBScan -TableName 'Music' -ScanFilter $scanFilter | ConvertFrom-DDBItem

Saída:

Name Value ---- ----- Genre Country Artist No One You Know Price 1.94 CriticRating 9 SongTitle Somewhere Down The Road AlbumTitle Somewhat Famous
  • Para ver detalhes da API, consulte Scan na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).

O código de exemplo a seguir mostra como usar New-DDBTable.

Ferramentas para PowerShell V4

Exemplo 1: este exemplo cria uma tabela chamada Thread que tem uma chave primária que consiste em “ForumName” (hash do tipo de chave) e “Subject” (intervalo de tipos de chave). O esquema usado para construir a tabela pode ser canalizado para cada cmdlet conforme mostrado ou especificado usando o parâmetro -Schema.

$schema = New-DDBTableSchema $schema | Add-DDBKeySchema -KeyName "ForumName" -KeyDataType "S" $schema | Add-DDBKeySchema -KeyName "Subject" -KeyType RANGE -KeyDataType "S" $schema | New-DDBTable -TableName "Thread" -ReadCapacity 10 -WriteCapacity 5

Saída:

AttributeDefinitions : {ForumName, Subject} TableName : Thread KeySchema : {ForumName, Subject} TableStatus : CREATING CreationDateTime : 10/28/2013 4:39:49 PM ProvisionedThroughput : Amazon.DynamoDBv2.Model.ProvisionedThroughputDescription TableSizeBytes : 0 ItemCount : 0 LocalSecondaryIndexes : {}

Exemplo 2: este exemplo cria uma tabela chamada “Thread” que tem uma chave primária que consiste em “ForumName” (hash do tipo de chave) e “Subject” (intervalo de tipos de chave). Um índice secundário local também é definido. A chave do índice secundário local será definida automaticamente por meio da chave de hash primária na tabela (ForumName). O esquema usado para construir a tabela pode ser canalizado para cada cmdlet conforme mostrado ou especificado usando o parâmetro -Schema.

$schema = New-DDBTableSchema $schema | Add-DDBKeySchema -KeyName "ForumName" -KeyDataType "S" $schema | Add-DDBKeySchema -KeyName "Subject" -KeyDataType "S" $schema | Add-DDBIndexSchema -IndexName "LastPostIndex" -RangeKeyName "LastPostDateTime" -RangeKeyDataType "S" -ProjectionType "keys_only" $schema | New-DDBTable -TableName "Thread" -ReadCapacity 10 -WriteCapacity 5

Saída:

AttributeDefinitions : {ForumName, LastPostDateTime, Subject} TableName : Thread KeySchema : {ForumName, Subject} TableStatus : CREATING CreationDateTime : 10/28/2013 4:39:49 PM ProvisionedThroughput : Amazon.DynamoDBv2.Model.ProvisionedThroughputDescription TableSizeBytes : 0 ItemCount : 0 LocalSecondaryIndexes : {LastPostIndex}

Exemplo 3: este exemplo mostra como usar um único pipeline para criar uma tabela chamada “Thread” que tem uma chave primária que consiste em “ForumName” (hash do tipo de chave) e “Subject” (intervalo de tipos de chave) e um índice secundário local. O Add-DDBKeySchema e o Add-DDBIndexSchema criam um objeto TableSchema para você se um não for fornecido pelo pipeline ou pelo parâmetro -Schema.

New-DDBTableSchema | Add-DDBKeySchema -KeyName "ForumName" -KeyDataType "S" | Add-DDBKeySchema -KeyName "Subject" -KeyDataType "S" | Add-DDBIndexSchema -IndexName "LastPostIndex" ` -RangeKeyName "LastPostDateTime" ` -RangeKeyDataType "S" ` -ProjectionType "keys_only" | New-DDBTable -TableName "Thread" -ReadCapacity 10 -WriteCapacity 5

Saída:

AttributeDefinitions : {ForumName, LastPostDateTime, Subject} TableName : Thread KeySchema : {ForumName, Subject} TableStatus : CREATING CreationDateTime : 10/28/2013 4:39:49 PM ProvisionedThroughput : Amazon.DynamoDBv2.Model.ProvisionedThroughputDescription TableSizeBytes : 0 ItemCount : 0 LocalSecondaryIndexes : {LastPostIndex}
  • Para ver detalhes da API, consulte CreateTable na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).

O código de exemplo a seguir mostra como usar New-DDBTableSchema.

Ferramentas para PowerShell V4

Exemplo 1: cria um objeto TableSchema vazio pronto para aceitar definições de chave e índice para uso na criação de uma tabela do Amazon DynamoDB. O objeto retornado pode ser canalizado para os cmdlets Add-DDBKeySchema, Add-DDBIndexSchema e New-DDBTable ou passado para eles usando o parâmetro -Schema em cada cmdlet.

New-DDBTableSchema

Saída:

AttributeSchema KeySchema LocalSecondaryIndexSchema --------------- --------- ------------------------- {} {} {}
  • Para obter detalhes da API, consulte New-DDBTableSchema em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).

O código de exemplo a seguir mostra como usar Remove-DDBItem.

Ferramentas para PowerShell V4

Exemplo 1: remove o item do DynamoDB que corresponde à chave fornecida.

$key = @{ SongTitle = 'Somewhere Down The Road' Artist = 'No One You Know' } | ConvertTo-DDBItem Remove-DDBItem -TableName 'Music' -Key $key -Confirm:$false
  • Para ver detalhes da API, consulte DeleteItem na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).

O código de exemplo a seguir mostra como usar Remove-DDBTable.

Ferramentas para PowerShell V4

Exemplo 1: exclui a tabela especificada. A confirmação será solicitada antes que a operação continue.

Remove-DDBTable -TableName "myTable"

Exemplo 2: exclui a tabela especificada. A confirmação não será solicitada antes que a operação continue.

Remove-DDBTable -TableName "myTable" -Force
  • Para ver detalhes da API, consulte DeleteTable na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).

O código de exemplo a seguir mostra como usar Set-DDBBatchItem.

Ferramentas para PowerShell V4

Exemplo 1: cria um item ou substitui um item por um novo item nas tabelas Music e Songs do DynamoDB.

$item = @{ SongTitle = 'Somewhere Down The Road' Artist = 'No One You Know' AlbumTitle = 'Somewhat Famous' Price = 1.94 Genre = 'Country' CriticRating = 10.0 } | ConvertTo-DDBItem $writeRequest = New-Object Amazon.DynamoDBv2.Model.WriteRequest $writeRequest.PutRequest = [Amazon.DynamoDBv2.Model.PutRequest]$item

Saída:

$requestItem = @{ 'Music' = [Amazon.DynamoDBv2.Model.WriteRequest]($writeRequest) 'Songs' = [Amazon.DynamoDBv2.Model.WriteRequest]($writeRequest) } Set-DDBBatchItem -RequestItem $requestItem
  • Para ver detalhes da API, consulte BatchWriteItem na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).

O código de exemplo a seguir mostra como usar Set-DDBItem.

Ferramentas para PowerShell V4

Exemplo 1: cria um item ou substitui um item por um novo item.

$item = @{ SongTitle = 'Somewhere Down The Road' Artist = 'No One You Know' AlbumTitle = 'Somewhat Famous' Price = 1.94 Genre = 'Country' CriticRating = 9.0 } | ConvertTo-DDBItem Set-DDBItem -TableName 'Music' -Item $item
  • Para ver detalhes da API, consulte PutItem na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).

O código de exemplo a seguir mostra como usar Update-DDBItem.

Ferramentas para PowerShell V4

Exemplo 1: define o atributo de gênero como “Rap” no item do DynamoDB com a chave de partição SongTitle e a chave de classificação Artist.

$key = @{ SongTitle = 'Somewhere Down The Road' Artist = 'No One You Know' } | ConvertTo-DDBItem $updateDdbItem = @{ TableName = 'Music' Key = $key UpdateExpression = 'set Genre = :val1' ExpressionAttributeValue = (@{ ':val1' = ([Amazon.DynamoDBv2.Model.AttributeValue]'Rap') }) } Update-DDBItem @updateDdbItem

Saída:

Name Value ---- ----- Genre Rap
  • Para ver detalhes da API, consulte UpdateItem na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).

O código de exemplo a seguir mostra como usar Update-DDBTable.

Ferramentas para PowerShell V4

Exemplo 1: atualiza os valores de throughput provisionado da tabela especificada.

Update-DDBTable -TableName "myTable" -ReadCapacity 10 -WriteCapacity 5
  • Para ver detalhes da API, consulte UpdateTable na Ferramentas da AWS para PowerShell Cmdlet Reference (V4).