Este tópico descreve como se conectar a uma instância compatível com DynamoDB usando AWS CLI, Python e Java.
Pré-requisitos
É necessária uma instância compatível com DynamoDB. Ao criar a instância, selecione DynamoDB como tipo de protocolo. Para mais informações, consulte Criar uma instância de cluster fragmentado.
Endpoint de conexão
Obtenha o endpoint de conexão da sua instância compatível com DynamoDB.
Faça login no console do ApsaraDB for MongoDB.
No canto superior esquerdo da página, selecione o grupo de recursos e a região da instância.
No painel de navegação à esquerda, clique em List of Shard cluster instances.
Localize a instância desejada e clique em seu ID.
No painel de navegação à esquerda, clique em Database Connection.
Na seção VPC Connection, visualize o endpoint de conexão da instância. O Protocol Type deste endpoint é DynamoDB-compatible protocol, e o endereço começa com
dds-.
Se sua aplicação estiver implantada em uma instância ECS, a instância do ApsaraDB for MongoDB e a instância ECS devem atender às seguintes condições para garantir a conectividade de rede:
Ambas devem estar na mesma região. Caso já possua uma instância ECS, verifique sua região. Para mais informações, consulte Visualizar a região de uma instância ECS.
Opcional: Para reduzir a latência de rede, recomenda-se colocá-las na mesma zona. Se você já tiver uma instância ECS, verifique sua zona. Para mais informações, consulte Visualizar a zona de uma instância ECS.
Ambas devem utilizar o mesmo tipo de rede. Se houver uma instância ECS existente, verifique seu tipo de rede. Para mais informações, consulte Visualizar o tipo de rede de uma instância ECS. Caso a instância ECS utilize a Classic network, migre-a da Classic network para uma VPC. Para mais informações, consulte Migrar uma instância ECS da rede clássica para uma VPC.
Conectar usando AWS CLI
Esta seção demonstra como usar a AWS Command Line Interface (AWS CLI) em um sistema Ubuntu 16.04.6 LTS para se conectar a uma instância compatível com DynamoDB. Para mais informações sobre a AWS CLI, consulte O que é a AWS Command Line Interface?.
-
Instale o cliente AWS CLI.
-
Execute o comando abaixo para baixar a versão mais recente da AWS CLI e salvá-la como
awscliv2.zip:curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" -
Execute o seguinte comando para descompactar o arquivo
awscliv2.zip:unzip awscliv2.zipNotaCaso não tenha o
unzipinstalado, execute o comandosudo apt install unzippara instalá-lo. -
Execute o comando a seguir para instalar a AWS CLI:
sudo ./aws/install
Quando a mensagem
You can now run: /usr/local/bin/aws --versionaparecer, a AWS CLI estará instalada. Em seguida, execute o comando/usr/local/bin/aws --versionpara verificar a versão atual da AWS CLI. -
-
Execute o comando
/usr/local/bin/aws configurepara configurar a AWS CLI. Insira os valores abaixo e pressione Enter após cada um.Parâmetro
Descrição
Exemplo
AWS Access Key IDInsira um ID de chave de acesso. O serviço compatível com DynamoDB não valida essa chave; portanto, qualquer string de caracteres é aceita.
XXXXXXXXXXAWS Secret Access KeyInsira uma chave de acesso secreta. O serviço compatível com DynamoDB não valida essa chave, então você pode inserir qualquer sequência de caracteres.
XXXXXXXXXXDefault region nameInforme o nome de uma região padrão da AWS.
us-west-2Default output formatFormato de saída padrão. Você pode deixar este parâmetro em branco.
jsonNotaPara mais detalhes sobre como configurar a AWS CLI, consulte Noções básicas de configuração.
-
Execute o comando abaixo para se conectar à instância compatível com DynamoDB desejada e criar uma tabela.
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>Parâmetro
Descrição
--endpoint-urlEndpoint da instância compatível com DynamoDB de destino. O endpoint deve começar com
http://.create-tableComando para criar uma tabela.
NotaPara mais informações, consulte create-table.
--table-nameNome da tabela a ser criada.
--attribute-definitionsArray de atributos que descrevem o esquema de chaves da tabela ou índice. Este parâmetro exige os seguintes subparâmetros:
-
AttributeName: Nome do atributo. -
AttributeType: Tipo de dados do atributo.NotaPara mais informações, consulte create-table.
--key-schemaAtributos que compõem a chave primária de uma tabela ou índice. Este parâmetro requer os seguintes subparâmetros:
-
AttributeName: Nome de um atributo de chave. O atributo é definido por meio do parâmetro--attribute-definitions. -
KeyType: Função da chave. Valores válidos: HASH e RANGE. HASH especifica a chave de partição e RANGE define a chave de ordenação.NotaPara mais informações, consulte create-table.
--provisioned-throughputConfigurações de throughput provisionado para a tabela ou índice. Este parâmetro necessita dos seguintes subparâmetros:
-
ReadCapacityUnits: Throughput de leitura provisionado. -
WriteCapacityUnits: Throughput de escrita provisionado.
NotaPara mais informações, consulte create-table.
Exemplo:
/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.Se a saída abaixo for retornada, a conexão com a instância compatível com DynamoDB foi estabelecida e a tabela criada com sucesso.
{ "TableDescription": { "TableName": "student", "KeySchema": [ { "AttributeName": "name", "KeyType": "HASH" }, { "AttributeName": "age", "KeyType": "RANGE" } ], "TableStatus": "CREATING", "TableSizeBytes": 0, "ItemCount": 0 } } -
Conectar usando Python
Python 2.6 ou versão posterior instalada. Para mais informações, consulte o site oficial do Python.
Boto3 instalado. Para mais informações, consulte Instalando o Boto3.
O código a seguir demonstra como se conectar a uma instância compatível com DynamoDB usando Python e criar uma tabela chamada 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)
Conectar usando Java
É necessário ter o AWS SDK for Java. Para mais informações, consulte Configurar o AWS SDK for Java.
O código abaixo ilustra como usar Java para se conectar a uma instância compatível com DynamoDB e criar uma tabela denominada 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());
}
}
}
Exemplos de conexão em outras linguagens
Para mais exemplos, consulte Introdução ao DynamoDB e aos AWS SDKs.