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

Doc AWS SDK ExamplesWord リポジトリには、さらに多くの GitHub の例があります。 AWS SDK

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

Tools for PowerShell を使用した DynamoDB の例

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

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

各例には、完全なソースコードへのリンクが含まれています。ここでは、コンテキストでコードを設定および実行する方法の手順を確認できます。

トピック

アクション

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

ツール for PowerShell

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

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

出力:

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

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

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

出力:

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

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

ツール for PowerShell

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

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

出力:

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

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

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

出力:

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

次のコード例は、ConvertFrom-DDBItem を使用する方法を示しています。

ツール for PowerShell

例 1: ConvertFrom-DDBItem は、Get-DDBItem の結果を DynamoDB AttributeValues Word のハッシュテーブルから文字列や 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 「Cmdlet リファレンス」のConvertFrom-DDBItem」を参照してください。

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

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

次のコード例は、Get-DDBBatchItem を使用する方法を示しています。

ツール for PowerShell

例 1: DynamoDB テーブルの「音楽」と「曲」から SongTitle 「Somewhere Down The Road」を使用して項目を取得します。

$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 を使用する方法を説明しています。

ツール for PowerShell

例 1: パーティション key SongTitle とソートキー Artist を含む 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 を使用する方法を説明しています。

ツール for PowerShell

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

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

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

ツール for PowerShell

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

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

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

ツール for PowerShell

例 1: 指定された SongTitle と Artist で 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 「コマンドレットリファレンス」の「クエリ」を参照してください。

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

ツール for 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 以上の a 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 「コマンドレットリファレンス」の「スキャン」を参照してください。

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

ツール for 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-DDBKeySchema と Add-DDBIndexSchema は、パイプラインまたは -Schema パラメータから提供されていない場合に、新しい TableSchema オブジェクトを作成します。

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 を使用する方法を示しています。

ツール for PowerShell

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

New-DDBTableSchema

出力:

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

次のコード例は、Remove-DDBItem を使用する方法を示しています。

ツール for 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 を使用する方法を示しています。

ツール for PowerShell

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

Remove-DDBTable -TableName "myTable"

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

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

次のコード例は、Set-DDBBatchItem を使用する方法を示しています。

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

次のコード例は、Set-DDBItem を使用する方法を示しています。

ツール for 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 を使用する方法を説明しています。

ツール for PowerShell

例 1: パーティション key SongTitle とソートキー Artist を使用して、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 の詳細については、「コマンドレットリファレンス」のUpdateItem」を参照してください。 AWS Tools for PowerShell

次のコード例は、Update-DDBTable を使用する方法を示しています。

ツール for PowerShell

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

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