Tools for を使用した DynamoDB の例 PowerShell - AWS SDK コード例

Doc AWS SDK Examples リポジトリには、他にも SDK の例があります。 AWS GitHub

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Tools for を使用した DynamoDB の例 PowerShell

次のコード例は、DynamoDB AWS Tools for PowerShell で を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています。

アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、関連するシナリオやサービス間の例ではアクションのコンテキストが確認できます。

「シナリオ」は、同じサービス内で複数の関数を呼び出して、特定のタスクを実行する方法を示すコード例です。

各例には、 へのリンクが含まれています。このリンクには GitHub、コンテキスト内でコードをセットアップして実行する方法の手順が記載されています。

トピック

アクション

次の例は、Add-DDBIndexSchema を使用する方法を説明しています。

のツール PowerShell

例 1: 空の TableSchema オブジェクトを作成し、パイプラインに TableSchema オブジェクトを書き込む前に、新しいローカルセカンダリインデックス定義を追加します。

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

出力:

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

例 2: TableSchema オブジェクトをパイプラインに書き戻す前に、指定された TableSchema オブジェクトに新しいローカルセカンダリインデックス定義を追加します。 TableSchema オブジェクトは、-Schema パラメータを使用して指定することもできます。

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

出力:

AttributeSchema KeySchema LocalSecondaryIndexSchema --------------- --------- ------------------------- {LastPostDateTime} {} {LastPostIndex}
  • API の詳細については、AWS Tools for PowerShell 「 コマンドレットリファレンス」の「Add-DDBIndexSchema」を参照してください。

次の例は、Add-DDBKeySchema を使用する方法を説明しています。

のツール PowerShell

例 1: オブジェクトを TableSchema パイプラインに書き込む前に、空の TableSchema オブジェクトを作成し、指定されたキーデータを使用してキーと属性定義エントリを追加します。キータイプはデフォルトで「HASH」として宣言されています。範囲キーを宣言するには、-KeyType paameter と「RANGE」の値を使用します。

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

出力:

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

例 2: TableSchema オブジェクトをパイプラインに書き込む前に、指定された TableSchema オブジェクトに新しいキーと属性定義エントリを追加します。キータイプはデフォルトで「HASH」として宣言されています。範囲キーを宣言するには、-KeyType paameter と「RANGE」の値を使用します。 TableSchema オブジェクトは、-Schema パラメータを使用して指定することもできます。

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

出力:

AttributeSchema KeySchema LocalSecondaryIndexSchema --------------- --------- ------------------------- {ForumName} {ForumName} {}
  • API の詳細については、AWS Tools for PowerShell 「 コマンドレットリファレンス」の「Add-DDBKeySchema」を参照してください。

次の例は、ConvertFrom-DDBItem を使用する方法を説明しています。

のツール PowerShell

例 1: ConvertFrom-DDBItem は、Get-DDBItem の結果を DynamoDB AttributeValues のハッシュテーブルから文字列や double などの一般的なタイプのハッシュテーブルに変換するために使用されます。

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

出力:

Name Value ---- ----- Genre Country Artist No One You Know Price 1.94 CriticRating 9 SongTitle Somewhere Down The Road AlbumTitle Somewhat Famous
  • API の詳細については、AWS Tools for PowerShell 「 コマンドレットリファレンス」のConvertFrom「-DDBItem」を参照してください。

次の例は、ConvertTo-DDBItem を使用する方法を説明しています。

のツール PowerShell

例 1: ハッシュテーブルを 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

例 2: ハッシュテーブルを 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

出力:

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
  • API の詳細については、AWS Tools for PowerShell 「 コマンドレットリファレンス」のConvertTo「-DDBItem」を参照してください。

次の例は、Get-DDBBatchItem を使用する方法を説明しています。

のツール PowerShell

例 1: DynamoDB テーブル「Music SongTitle 」と「Songs」から「Somewhere Down The Drive」を含む項目を取得します。

$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

出力:

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
  • API の詳細については、「 コマンドレットリファレンスBatchGetItem」の「」を参照してください。 AWS Tools for PowerShell

次の例は、Get-DDBItem を使用する方法を説明しています。

のツール PowerShell

例 1: パーティションキー SongTitle とソートキー アーティストを含む DynamoDB 項目を返します。

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

出力:

Name Value ---- ----- Genre Country SongTitle Somewhere Down The Road Price 1.94 Artist No One You Know CriticRating 9 AlbumTitle Somewhat Famous
  • API の詳細については、「 コマンドレットリファレンスGetItem」の「」を参照してください。 AWS Tools for PowerShell

次の例は、Get-DDBTable を使用する方法を説明しています。

のツール PowerShell

例 1: 指定されたテーブルの詳細を返します。

Get-DDBTable -TableName "myTable"
  • API の詳細については、「 コマンドレットリファレンスDescribeTable」の「」を参照してください。 AWS Tools for PowerShell

次の例は、Get-DDBTableList を使用する方法を説明しています。

のツール PowerShell

例 1: すべてのテーブルの詳細を返し、サービスが他にテーブルがないことを知らせるまで自動で繰り返します。

Get-DDBTableList

例 2: 呼び出しごとに 10 個のテーブルの詳細を返し、サービスが他にテーブルがないことを知らせるまで手動で繰り返します。

$nextToken = $null do { Get-DDBTableList -ExclusiveStartTableName $nextToken -Limit 10 $nextToken = $AWSHistory.LastServiceResponse.LastEvaluatedTableName } while ($nextToken -ne $null)
  • API の詳細については、「 コマンドレットリファレンスListTables」の「」を参照してください。 AWS Tools for PowerShell

次の例は、Invoke-DDBQuery を使用する方法を説明しています。

のツール PowerShell

例 1: 指定された SongTitle と アーティストを持つ DynamoDB 項目を返すクエリを呼び出します。

$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

出力:

Name Value ---- ----- Genre Country Artist No One You Know Price 1.94 CriticRating 9 SongTitle Somewhere Down The Road AlbumTitle Somewhat Famous
  • API の詳細については、「AWS Tools for PowerShell Cmdlet Reference」の「Query」を参照してください。

次の例は、Invoke-DDBScan を使用する方法を説明しています。

のツール PowerShell

例 1: Music テーブルのすべての項目を返します。

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

出力:

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

例 2: が 9 CriticRating 以上の Music テーブル内の項目を返します。

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

出力:

Name Value ---- ----- Genre Country Artist No One You Know Price 1.94 CriticRating 9 SongTitle Somewhere Down The Road AlbumTitle Somewhat Famous
  • API の詳細については、「AWS Tools for PowerShell Cmdlet Reference」の「Scan」を参照してください。

次の例は、New-DDBTable を使用する方法を説明しています。

のツール PowerShell

例 1: この例では、ForumName「」(キータイプハッシュ) と「Subject」(キータイプ範囲) で構成されるプライマリキーを持つ Thread という名前のテーブルを作成します。テーブルの作成に使用したスキーマは、図のように各 cmdlet にパイプ処理するか、-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

出力:

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 : {}

例 2: この例では、ForumName「」(キータイプハッシュ) と「Subject」(キータイプ範囲) で構成されるプライマリキーを持つ Thread という名前のテーブルを作成します。ローカルセカンダリインデックスも定義されます。ローカルセカンダリインデックスのキーは、テーブルのプライマリハッシュキー () から自動的に設定されますForumName。テーブルの作成に使用したスキーマは、図のように各 cmdlet にパイプ処理するか、-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

出力:

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}

例 3: この例は、単一のパイプラインを使用して、ForumName「」(キータイプハッシュ) と「Subject」(キータイプ範囲) とローカルセカンダリインデックスで構成されるプライマリキーを持つ Thread という名前のテーブルを作成する方法を示しています。Add-DDB KeySchema および Add-DDB は、パイプラインまたは -Schema パラメータから指定されていない場合に、新しい TableSchema オブジェクトIndexSchema を作成します。

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

出力:

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}
  • API の詳細については、「 コマンドレットリファレンスCreateTable」の「」を参照してください。 AWS Tools for PowerShell

次の例は、New-DDBTableSchema を使用する方法を説明しています。

のツール PowerShell

例 1: 新しい Amazon DynamoDB テーブルの作成に使用するキーとインデックスの定義を受け入れる準備ができている空の TableSchema オブジェクトを作成します。返されたオブジェクトは、Add-DDB KeySchema、Add-DDB、IndexSchema New-DDBTable コマンドレットにパイプするか、各コマンドレットの -Schema パラメータを使用して渡すことができます。

New-DDBTableSchema

出力:

AttributeSchema KeySchema LocalSecondaryIndexSchema --------------- --------- ------------------------- {} {} {}
  • API の詳細については、AWS Tools for PowerShell 「 コマンドレットリファレンス」の「New-DDBTableSchema」を参照してください。

次の例は、Remove-DDBItem を使用する方法を説明しています。

のツール PowerShell

例 1: 指定されたキーと一致する DynamoDB 項目を削除します。

$key = @{ SongTitle = 'Somewhere Down The Road' Artist = 'No One You Know' } | ConvertTo-DDBItem Remove-DDBItem -TableName 'Music' -Key $key -Confirm:$false
  • API の詳細については、AWS Tools for PowerShell 「 コマンドレットリファレンスDeleteItem」の「」を参照してください。

次の例は、Remove-DDBTable を使用する方法を説明しています。

のツール PowerShell

例 1: 指定されたテーブルを削除します。操作を続行する前に確認画面が表示されます。

Remove-DDBTable -TableName "myTable"

例 2: 指定されたテーブルを削除します。操作を続行する前に確認画面は表示されません。

Remove-DDBTable -TableName "myTable" -Force
  • API の詳細については、AWS Tools for PowerShell 「 コマンドレットリファレンスDeleteTable」の「」を参照してください。

次の例は、Set-DDBBatchItem を使用する方法を説明しています。

のツール PowerShell

例 1: 新しい項目を作成する、または既存の項目を「Music 」DynamoDB テーブルおよび「Songs」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

出力:

$requestItem = @{ 'Music' = [Amazon.DynamoDBv2.Model.WriteRequest]($writeRequest) 'Songs' = [Amazon.DynamoDBv2.Model.WriteRequest]($writeRequest) } Set-DDBBatchItem -RequestItem $requestItem
  • API の詳細については、「 コマンドレットリファレンスBatchWriteItem」の「」を参照してください。 AWS Tools for PowerShell

次の例は、Set-DDBItem を使用する方法を説明しています。

のツール PowerShell

例 1: 新しい項目を作成する、または既存の項目を新しい項目で置き換えます。

$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
  • API の詳細については、「 コマンドレットリファレンスPutItem」の「」を参照してください。 AWS Tools for PowerShell

次の例は、Update-DDBItem を使用する方法を説明しています。

のツール PowerShell

例 1: パーティションキー SongTitle とソートキーのアーティストを使用して、DynamoDB 項目で genre 属性を「Rap」に設定します。

$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

出力:

Name Value ---- ----- Genre Rap
  • API の詳細については、AWS Tools for PowerShell 「 コマンドレットリファレンスUpdateItem」の「」を参照してください。

次の例は、Update-DDBTable を使用する方法を説明しています。

のツール PowerShell

例 1: 指定されたテーブルのプロビジョンされたスループットを更新します。

Update-DDBTable -TableName "myTable" -ReadCapacity 10 -WriteCapacity 5
  • API の詳細については、「 コマンドレットリファレンスUpdateTable」の「」を参照してください。 AWS Tools for PowerShell