Cette rubrique explique comment se connecter à une instance compatible DynamoDB à l'aide d'AWS CLI, de Python et de Java.
Prérequis
Vous devez disposer d'une instance compatible DynamoDB. Lors de la création de l'instance, sélectionnez DynamoDB comme type de protocole. Pour plus d'informations, consultez Créer une instance de cluster fragmenté.
Endpoint de connexion
Récupérez l'endpoint de connexion de votre instance compatible DynamoDB.
Connectez-vous à la console ApsaraDB for MongoDB.
Dans le coin supérieur gauche de la page, sélectionnez le groupe de ressources et la région de l'instance.
Dans le volet de navigation de gauche, cliquez sur List of Shard cluster instances.
Localisez l'instance cible et cliquez sur son ID.
Dans le volet de navigation de gauche, cliquez sur Database Connection.
Dans la section VPC Connection, affichez l'endpoint de connexion de l'instance. Le Type de protocole pour cet endpoint est Protocole compatible DynamoDB, et l'adresse commence par
dds-.
Si votre application est déployée sur une instance ECS, votre instance ApsaraDB for MongoDB et l'instance ECS doivent répondre aux conditions suivantes pour garantir la connectivité réseau.
Elles doivent se trouver dans la même région. Si vous disposez d'une instance ECS existante, vous pouvez vérifier sa région. Pour plus d'informations, consultez Afficher la région d'une instance ECS.
Facultatif : Pour réduire la latence réseau, nous vous recommandons de les placer dans la même zone. Si vous disposez d'une instance ECS existante, vous pouvez vérifier sa zone. Pour plus d'informations, consultez Afficher la zone d'une instance ECS.
Elles doivent utiliser le même type de réseau. Si vous disposez d'une instance ECS existante, vous pouvez vérifier son type de réseau. Pour plus d'informations, consultez Afficher le type de réseau d'une instance ECS. Si l'instance ECS utilise le Classic network, vous pouvez la migrer du Classic network vers un VPC. Pour plus d'informations, consultez Migrer une instance ECS du réseau classique vers un VPC.
Se connecter à l'aide d'AWS CLI
Cette section explique comment utiliser l'interface de ligne de commande AWS (AWS CLI) sur un système Ubuntu 16.04.6 LTS pour se connecter à une instance compatible DynamoDB. Pour plus d'informations sur AWS CLI, consultez Qu'est-ce qu'AWS Command Line Interface ?.
-
Installez le client AWS CLI.
-
Exécutez la commande suivante pour télécharger la dernière version d'AWS CLI et l'enregistrer sous le nom
awscliv2.zip:curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" -
Exécutez la commande suivante pour décompresser le fichier
awscliv2.zip:unzip awscliv2.zipRemarqueSi
unzipn'est pas installé, exécutez la commandesudo apt install unzippour l'installer. -
Exécutez la commande suivante pour installer AWS CLI :
sudo ./aws/install
Lorsque le message
You can now run: /usr/local/bin/aws --versions'affiche, l'installation d'AWS CLI est terminée. Exécutez alors la commande/usr/local/bin/aws --versionpour vérifier la version actuelle d'AWS CLI. -
-
Exécutez la commande
/usr/local/bin/aws configurepour configurer AWS CLI. Saisissez les valeurs suivantes en appuyant sur Entrée après chacune d'elles.Paramètre
Description
Exemple
AWS Access Key IDSaisissez un ID de clé d'accès. Le service compatible DynamoDB ne valide pas cette clé ; vous pouvez donc saisir n'importe quelle chaîne de caractères.
XXXXXXXXXXAWS Secret Access KeySaisissez une clé d'accès secrète. Le service compatible DynamoDB ne valide pas cette clé ; vous pouvez donc saisir n'importe quelle chaîne de caractères.
XXXXXXXXXXDefault region nameSaisissez le nom d'une région AWS par défaut.
us-west-2Default output formatFormat de sortie par défaut. Vous pouvez laisser ce paramètre vide.
jsonRemarquePour plus d'informations sur la configuration d'AWS CLI, consultez Configuration de base.
-
Exécutez la commande suivante pour vous connecter à l'instance compatible DynamoDB cible et créer une table.
aws dynamodb --endpoint-url <connection-endpoint-of-your-DynamoDB-compatible-instance> \ create-table --table-name <your-table-name> \ --attribute-definitions AttributeName=<attribute-name>,AttributeType=<attribute-data-type> \ --key-schema AttributeName=<primary-key-attribute-name>,KeyType=<key-role> \ --provisioned-throughput ReadCapacityUnits=<provisioned-read-throughput>,WriteCapacityUnits=<provisioned-write-throughput>Paramètre
Description
--endpoint-urlEndpoint de l'instance compatible DynamoDB cible. L'endpoint doit commencer par
http://.create-tableCommande de création d'une table.
RemarquePour plus d'informations, consultez create-table.
--table-nameNom de la table à créer.
--attribute-definitionsTableau d'attributs décrivant le schéma de clé de la table ou de l'index. Ce paramètre nécessite les sous-paramètres suivants :
-
AttributeName: nom de l'attribut. -
AttributeType: type de données de l'attribut.RemarquePour plus d'informations, consultez create-table.
--key-schemaAttributs constituant la clé primaire d'une table ou d'un index. Ce paramètre nécessite les sous-paramètres suivants :
-
AttributeName: nom d'un attribut de clé. L'attribut est défini à l'aide du paramètre--attribute-definitions. -
KeyType: rôle de la clé. Valeurs valides : HASH et RANGE. HASH spécifie la clé de partition et RANGE spécifie la clé de tri.RemarquePour plus d'informations, consultez create-table.
--provisioned-throughputParamètres de débit provisionné pour la table ou l'index. Ce paramètre nécessite les sous-paramètres suivants :
-
ReadCapacityUnits: débit de lecture provisionné. -
WriteCapacityUnits: débit d'écriture provisionné.
RemarquePour plus d'informations, consultez create-table.
Exemple :
/usr/local/bin/aws dynamodb --endpoint-url http://dds-xxxx.mongodb.rds.aliyuncs.com:3717 \ # Connect to the specified endpoint of the DynamoDB-compatible instance. create-table --table-name student \ # Create a table named student. --attribute-definitions AttributeName=name,AttributeType=S AttributeName=age,AttributeType=N \ # The table schema includes a 'name' attribute of type String (S) and an 'age' attribute of type Number (N). --key-schema AttributeName=name,KeyType=HASH AttributeName=age,KeyType=RANGE \ # Specify 'name' as the partition key and 'age' as the sort key. --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 # Set the provisioned read throughput and provisioned write throughput to 5.Si la sortie suivante s'affiche, la connexion à l'instance compatible DynamoDB cible est établie et la table est créée.
{ "TableDescription": { "TableName": "student", "KeySchema": [ { "AttributeName": "name", "KeyType": "HASH" }, { "AttributeName": "age", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "TableSizeBytes": 0, "ItemCount": 0 } } -
Se connecter à l'aide de Python
Python 2.6 ou une version ultérieure est installé. Pour plus d'informations, consultez le site Web officiel de Python.
Boto3 est installé. Pour plus d'informations, consultez Installation de Boto3.
Le code suivant montre comment se connecter à une instance compatible DynamoDB à l'aide de Python et créer une table nommée Book :
import boto3
def create_book_table(dynamodb=None):
if not dynamodb:
# Replace the endpoint_url with the actual endpoint of your DynamoDB-compatible instance.
dynamodb = boto3.resource('dynamodb', endpoint_url="http://dds-xxxx.mongodb.rds.aliyuncs.com:3717")
table = dynamodb.create_table(
TableName='Book',
KeySchema=[
{
'AttributeName':'title',
'KeyType':'HASH'
},
{
'AttributeName':'year',
'KeyType':'RANGE'
}
],
AttributeDefinitions=[
{
'AttributeName':'title',
'AttributeType':'S'
},
{
'AttributeName':'year',
'AttributeType':'N'
},
],
ProvisionedThroughput={
'ReadCapacityUnits':5,
'WriteCapacityUnits':5
}
)
return table
if __name__ == '__main__':
book_table =create_book_table()
print("Table status:", book_table.table_status)
Se connecter à l'aide de Java
AWS SDK for Java est requis. Pour plus d'informations, consultez Configurer AWS SDK for Java.
Le code suivant montre comment utiliser Java pour se connecter à une instance compatible DynamoDB et créer une table nommée Book :
package com.amazonaws.codesamples.gsg;
import java.util.Arrays;
import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClientBuilder;
import com.amazonaws.services.dynamodbv2.document.DynamoDB;
import com.amazonaws.services.dynamodbv2.document.Table;
import com.amazonaws.services.dynamodbv2.model.AttributeDefinition;
import com.amazonaws.services.dynamodbv2.model.KeySchemaElement;
import com.amazonaws.services.dynamodbv2.model.KeyType;
import com.amazonaws.services.dynamodbv2.model.ProvisionedThroughput;
import com.amazonaws.services.dynamodbv2.model.ScalarAttributeType;
public class MoviesCreateTable {
public static void main(String[] args) throws Exception {
// Replace the endpoint and region with the actual values for your DynamoDB-compatible instance.
AmazonDynamoDB client =AmazonDynamoDBClientBuilder.standard()
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration("http://dds-xxxx.mongodb.rds.aliyuncs.com:3717",
"us-east-1"))
.build();
DynamoDB dynamoDB = new DynamoDB(client);
String tableName ="Book";
try {
System.out.println("Creating table...");
Table table =dynamoDB.createTable(tableName,
Arrays.asList(new
KeySchemaElement("title", KeyType.HASH), // partition key
new KeySchemaElement("year", KeyType.RANGE)), // sort key
Arrays.asList(new AttributeDefinition("title", ScalarAttributeType.S),
new AttributeDefinition("year", ScalarAttributeType.N)),
new ProvisionedThroughput(5L, 5L));
table.waitForActive();
System.out.println("OK. Table status: " + table.getDescription().getTableStatus());
}
catch (Exception e) {
System.err.println("Unable to create table: ");
System.err.println(e.getMessage());
}
}
}
Exemples de connexion dans d'autres langages
Pour plus d'exemples, consultez Prise en main de DynamoDB et des kits SDK AWS.