Insérer un élément dans une table DynamoDB à l'aide d'un kit AWS SDK - Amazon DynamoDB

Insérer un élément dans une table DynamoDB à l'aide d'un kit AWS SDK

Les exemples de code suivants montrent comment insérer un élément dans une table DynamoDB.

.NET
AWS SDK for .NET
Astuce

Pour découvrir les étapes de configuration et d’exécution de cet exemple, consultez GitHub.

/// <summary> /// Adds a new item to the table. /// </summary> /// <param name="client">An initialized Amazon DynamoDB client object.</param> /// <param name="newMovie">A Movie object containing informtation for /// the movie to add to the table.</param> /// <param name="tableName">The name of the table where the item will be added.</param> /// <returns>A Boolean value that indicates the results of adding the item.</returns> public static async Task<bool> PutItemAsync(AmazonDynamoDBClient client, Movie newMovie, string tableName) { var item = new Dictionary<string, AttributeValue> { ["title"] = new AttributeValue { S = newMovie.Title }, ["year"] = new AttributeValue { N = newMovie.Year.ToString() }, }; var request = new PutItemRequest { TableName = tableName, Item = item, }; var response = await client.PutItemAsync(request); return response.HttpStatusCode == System.Net.HttpStatusCode.OK; }
  • Pour plus d'informations sur l'API, consultez PutItem dans la référence d'API AWS SDK for .NET.

C++
Kit SDK pour C++
Astuce

Pour découvrir les étapes de configuration et d’exécution de cet exemple, consultez GitHub.

Aws::Client::ClientConfiguration clientConfig; Aws::DynamoDB::DynamoDBClient dynamoClient(clientConfig); Aws::DynamoDB::Model::PutItemRequest putItemRequest; putItemRequest.SetTableName(table); Aws::DynamoDB::Model::AttributeValue av; av.SetS(keyVal); Aws::DynamoDB::Model::AttributeValue album; album.SetS(AlbumTitleValue); Aws::DynamoDB::Model::AttributeValue awards; awards.SetS(AwardVal); Aws::DynamoDB::Model::AttributeValue song; song.SetS(SongTitleVal); // Add all AttributeValue objects. putItemRequest.AddItem(key, av); putItemRequest.AddItem(albumTitle, album); putItemRequest.AddItem(Awards, awards); putItemRequest.AddItem(SongTitle, song); const Aws::DynamoDB::Model::PutItemOutcome result = dynamoClient.PutItem(putItemRequest); if (!result.IsSuccess()) { std::cout << result.GetError().GetMessage() << std::endl; return 1; } std::cout << "Successfully added Item!" << std::endl;
  • Pour plus d'informations sur l'API, consultez PutItem dans la référence d'API AWS SDK for C++.

Go
Kit SDK for Go V2
Astuce

Pour découvrir les étapes de configuration et d’exécution de cet exemple, consultez GitHub.

// TableBasics encapsulates the Amazon DynamoDB service actions used in the examples. // It contains a DynamoDB service client that is used to act on the specified table. type TableBasics struct { DynamoDbClient *dynamodb.Client TableName string } // AddMovie adds a movie the DynamoDB table. func (basics TableBasics) AddMovie(movie Movie) error { item, err := attributevalue.MarshalMap(movie) if err != nil { panic(err) } _, err = basics.DynamoDbClient.PutItem(context.TODO(), &dynamodb.PutItemInput{ TableName: aws.String(basics.TableName), Item: item, }) if err != nil { log.Printf("Couldn't add item to table. Here's why: %v\n", err) } return err }
  • Pour plus d'informations sur l'API, consultez PutItem dans la référence d'API AWS SDK for Go.

Java
Kit SDK pour Java 2.x
Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

Insère un élément dans une table à l'aide du client amélioré.

public static void putRecord(DynamoDbEnhancedClient enhancedClient) { try { DynamoDbTable<Customer> custTable = enhancedClient.table("Customer", TableSchema.fromBean(Customer.class)); // Create an Instant value. LocalDate localDate = LocalDate.parse("2020-04-07"); LocalDateTime localDateTime = localDate.atStartOfDay(); Instant instant = localDateTime.toInstant(ZoneOffset.UTC); // Populate the Table. Customer custRecord = new Customer(); custRecord.setCustName("Tom red"); custRecord.setId("id119"); custRecord.setEmail("tred@noserver.com"); custRecord.setRegistrationDate(instant) ; // Put the customer data into an Amazon DynamoDB table. custTable.putItem(custRecord); } catch (DynamoDbException e) { System.err.println(e.getMessage()); System.exit(1); } System.out.println("Customer data added to the table."); }
  • Pour plus d'informations sur l'API, consultez PutItem dans la référence d'API AWS SDK for Java 2.x.

JavaScript
Kit SDK pour JavaScript V3
Astuce

Pour découvrir les étapes de configuration et d’exécution de cet exemple, consultez GitHub.

Créez le client.

// Create the DynamoDB service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. export const REGION = "REGION"; // For example, "us-east-1". // Create an Amazon DynamoDB service client object. export const ddbClient = new DynamoDBClient({ region: REGION });

Créez le client de document DynamoDB.

// Create a service client module using ES6 syntax. import { DynamoDBDocumentClient } from "@aws-sdk/lib-dynamodb"; import { ddbClient } from "./ddbClient.js"; const marshallOptions = { // Whether to automatically convert empty strings, blobs, and sets to `null`. convertEmptyValues: false, // false, by default. // Whether to remove undefined values while marshalling. removeUndefinedValues: false, // false, by default. // Whether to convert typeof object to map attribute. convertClassInstanceToMap: false, // false, by default. }; const unmarshallOptions = { // Whether to return numbers as a string instead of converting them to native JavaScript numbers. wrapNumbers: false, // false, by default. }; const translateConfig = { marshallOptions, unmarshallOptions }; // Create the DynamoDB document client. const ddbDocClient = DynamoDBDocumentClient.from(ddbClient, translateConfig); export { ddbDocClient };

Insérez un élément dans une table à l'aide du client de document DynamoDB.

import { PutCommand } from "@aws-sdk/lib-dynamodb"; import { ddbDocClient } from "../libs/ddbDocClient.js"; export const putItem = async () => { // Set the parameters. export const params = { TableName: "TABLE_NAME", Item: { primaryKey: "VALUE_1", sortKey: "VALUE_2", }, }; try { const data = await ddbDocClient.send(new PutCommand(params)); console.log("Success - item added or updated", data); } catch (err) { console.log("Error", err.stack); } }; putItem();

Insérez un élément dans une table à l'aide de PartiQL.

// Import required AWS SDK clients and commands for Node.js. import { ExecuteStatementCommand } from "@aws-sdk/client-dynamodb"; import { ddbDocClient } from "../libs/ddbDocClient.js"; const tableName = process.argv[2]; const movieYear1 = process.argv[3]; const movieTitle1 = process.argv[4]; export const run = async (tableName, movieTitle1, movieYear1) => { const params = { Statement: "INSERT INTO " + tableName + " value {'title':?, 'year':?}", Parameters: [{ S: movieTitle1 }, { N: movieYear1 }], }; try { await ddbDocClient.send(new ExecuteStatementCommand(params)); console.log("Success. Item added."); return "Run successfully"; // For unit tests. } catch (err) { console.error(err); } }; run(tableName, movieTitle1, movieYear1);

Insérez des éléments par lot dans une table à l'aide de PartiQL.

// Import required AWS SDK clients and commands for Node.js. import { BatchExecuteStatementCommand } from "@aws-sdk/client-dynamodb"; import { ddbDocClient } from "../libs/ddbDocClient.js"; const tableName = process.argv[2]; const movieYear1 = process.argv[3]; const movieTitle1 = process.argv[4]; const movieYear2 = process.argv[5]; const movieTitle2 = process.argv[6]; export const run = async ( tableName, movieYear1, movieTitle1, movieYear2, movieTitle2 ) => { const params = { Statements: [ { Statement: "INSERT INTO " + tableName + " value {'title':?, 'year':?}", Parameters: [{ S: movieTitle1 }, { N: movieYear1 }], }, { Statement: "INSERT INTO " + tableName + " value {'title':?, 'year':?}", Parameters: [{ S: movieTitle2 }, { N: movieYear2 }], }, ], }; try { await ddbDocClient.send( new BatchExecuteStatementCommand(params) ); console.log("Success. Items added."); return "Run successfully"; // For unit tests. } catch (err) { console.error(err); } }; run(tableName, movieYear1, movieTitle1, movieYear2, movieTitle2);
  • Pour plus d'informations sur l'API, consultez PutItem dans la référence d'API AWS SDK for JavaScript.

Kit SDK pour JavaScript V2
Astuce

Pour découvrir les étapes de configuration et d’exécution de cet exemple, consultez GitHub.

Insérez un élément dans la table.

// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'REGION'}); // Create the DynamoDB service object var ddb = new AWS.DynamoDB({apiVersion: '2012-08-10'}); var params = { TableName: 'CUSTOMER_LIST', Item: { 'CUSTOMER_ID' : {N: '001'}, 'CUSTOMER_NAME' : {S: 'Richard Roe'} } }; // Call DynamoDB to add the item to the table ddb.putItem(params, function(err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

Insérez un élément dans une table à l'aide du client de document DynamoDB.

// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Set the region AWS.config.update({region: 'REGION'}); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({apiVersion: '2012-08-10'}); var params = { TableName: 'TABLE', Item: { 'HASHKEY': VALUE, 'ATTRIBUTE_1': 'STRING_VALUE', 'ATTRIBUTE_2': VALUE_2 } }; docClient.put(params, function(err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
Kotlin
Kits SDK pour Kotlin
Note

Ceci est une documentation préliminaire pour une fonctionnalité en version de prévisualisation. Elle est susceptible d’être modifiée.

Astuce

Pour découvrir comment configurer et exécuter cet exemple, consultez GitHub.

suspend fun putItemInTable( tableNameVal: String, key: String, keyVal: String, albumTitle: String, albumTitleValue: String, awards: String, awardVal: String, songTitle: String, songTitleVal: String ) { val itemValues = mutableMapOf<String, AttributeValue>() // Add all content to the table. itemValues[key] = AttributeValue.S(keyVal) itemValues[songTitle] = AttributeValue.S(songTitleVal) itemValues[albumTitle] = AttributeValue.S(albumTitleValue) itemValues[awards] = AttributeValue.S(awardVal) val request = PutItemRequest { tableName = tableNameVal item = itemValues } DynamoDbClient { region = "us-east-1" }.use { ddb -> ddb.putItem(request) println(" A new item was placed into $tableNameVal.") } }
  • Pour plus d'informations sur l'API, consultez PutItem dans la référence d'API du kit AWS SDK pour Kotlin.

PHP
Kit SDK pour PHP
Astuce

Pour découvrir les étapes de configuration et d’exécution de cet exemple, consultez GitHub.

echo "What's the name of the last movie you watched?\n"; while (empty($movieName)) { $movieName = testable_readline("Movie name: "); } echo "And what year was it released?\n"; $movieYear = "year"; while (!is_numeric($movieYear) || intval($movieYear) != $movieYear) { $movieYear = testable_readline("Year released: "); } $service->putItem([ 'Item' => [ 'year' => [ 'N' => "$movieYear", ], 'title' => [ 'S' => $movieName, ], ], 'TableName' => $tableName, ]); public function putItem(array $array) { $this->dynamoDbClient->putItem($array); }
  • Pour plus d'informations sur l'API, consultez PutItem dans la référence d'API AWS SDK for PHP.

Python
Kit SDK pour Python (Boto3)
Astuce

Pour découvrir les étapes de configuration et d’exécution de cet exemple, consultez GitHub.

class Movies: """Encapsulates an Amazon DynamoDB table of movie data.""" def __init__(self, dyn_resource): """ :param dyn_resource: A Boto3 DynamoDB resource. """ self.dyn_resource = dyn_resource self.table = None def add_movie(self, title, year, plot, rating): """ Adds a movie to the table. :param title: The title of the movie. :param year: The release year of the movie. :param plot: The plot summary of the movie. :param rating: The quality rating of the movie. """ try: self.table.put_item( Item={ 'year': year, 'title': title, 'info': {'plot': plot, 'rating': Decimal(str(rating))}}) except ClientError as err: logger.error( "Couldn't add movie %s to table %s. Here's why: %s: %s", title, self.table.name, err.response['Error']['Code'], err.response['Error']['Message']) raise
  • Pour obtenir plus de détails sur l'API, consultez PutItem dans la référence d'API du kit AWS SDK pour Python (Boto3).

Ruby
Kit SDK pour Ruby
Astuce

Pour découvrir les étapes de configuration et d’exécution de cet exemple, consultez GitHub.

# Adds a movie to the table. # # @param title [String] The title of the movie. # @param year [Integer] The release year of the movie. # @param plot [String] The plot summary of the movie. # @param rating [Float] The quality rating of the movie. def add_movie(title:, year:, plot:, rating:) @table.put_item( item: { "year" => year, "title" => title, "info" => {"plot" => plot, "rating" => rating}}) rescue Aws::Errors::ServiceError => e puts("Couldn't add movie #{title} to table #{@table.name}. Here's why:") puts("\t#{e.code}: #{e.message}") raise end
  • Pour plus d'informations sur l'API, consultez PutItem dans la référence d'API AWS SDK for Ruby.

Rust
Kit SDK pour Rust
Note

Cette documentation concerne un kit SDK en prévisualisation préliminaire. Le kit SDK est susceptible d’être modifié et ne doit pas être utilisé en production.

Astuce

Pour découvrir les étapes de configuration et d’exécution de cet exemple, consultez GitHub.

async fn add_item( client: &Client, table: &str, username: &str, p_type: &str, age: &str, first: &str, last: &str, ) -> Result<(), Error> { let user_av = AttributeValue::S(username.into()); let type_av = AttributeValue::S(p_type.into()); let age_av = AttributeValue::S(age.into()); let first_av = AttributeValue::S(first.into()); let last_av = AttributeValue::S(last.into()); let request = client .put_item() .table_name(table) .item("username", user_av) .item("account_type", type_av) .item("age", age_av) .item("first_name", first_av) .item("last_name", last_av); println!("Executing request [{:?}] to add item...", request); request.send().await?; println!( "Added user {}, {} {}, age {} as {} user", username, first, last, age, p_type ); Ok(()) }
  • Pour plus d'informations sur l'API, consultez PutItem dans la référence d'API du kit AWS SDK pour Rust.

Pour obtenir la liste complète des guides de développementAWS SDK et des exemples de code, consultez Utilisation de DynamoDB avec un kit AWS SDK. Cette rubrique comprend également des informations sur le démarrage et sur les versions précédentes du kit de développement logiciel (SDK).