日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過程序代碼連接DynamoDB協議兼容版實例

本文檔通過AWS CLI、Python、Java多個維度,介紹如何連接到DynamoDB協議兼容版實例。

前提條件

已創建DynamoDB協議兼容版實例(協議類型選擇DynamoDB協議),創建方法請參見創建分片集群實例

準備工作

獲取DynamoDB協議兼容版實例的連接地址。

  1. 登錄MongoDB管理控制臺

  2. 在頁面左上角,選擇實例所在的資源組和地域。

  3. 在左側導航欄,單擊分片集群實例列表

  4. 找到目標實例,單擊實例ID。

  5. 在左側導航欄,單擊數據庫連接

  6. 私網連接 - 專有網絡區域,查看實例的連接地址。連接地址

如果應用部署在ECS實例,您需要確保云數據庫MongoDB實例和ECS服務器滿足以下條件,以保證網絡的連通性。

  • 所在地域相同。如果您已經創建了ECS服務器,您可以查看ECS所在地域,查看方法請參見查看ECS實例所在地域

  • 可選:建議所屬可用區相同,以減少網絡延時。如果您已經創建了ECS服務器,您可以查看ECS所在可用區,查看方法請參見查看ECS實例所在地域

  • 網絡類型相同。如果您已經創建了ECS服務器,您可以查看ECS的網絡類型,查看方法請參見查看ECS實例網絡類型。當ECS服務器的網絡類型為經典網絡時,您可以將經典網絡遷移至專有網絡,遷移方法請參見ECS實例從經典網絡遷移到專有網絡

AWS CLI連接示例

Ubuntu 16.04.6 LTS系統為例介紹通過AWS CLI(AWS Command Line Interface)連接DynamoDB協議兼容版實例的方法。關于AWS CLI的詳細信息,請參見AWS Command Line Interface是什么

  1. 安裝AWS CLI客戶端。

    1. 執行如下命令,獲取最新版的AWS CLI并將其重命名為awscliv2.zip

      curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
    2. 執行如下命令,解壓awscliv2.zip文件。

      unzip awscliv2.zip
      說明

      如果您尚未安裝unzip,請先通過sudo apt install unzip命令安裝,然后再執行上面的解壓命令。

    3. 執行如下命令,安裝AWS CLI。

      sudo ./aws/install

    當命令行窗口中出現You can now run: /usr/local/bin/aws --version提示,則表示您已成功安裝AWS CLI。此時您可以執行/usr/local/bin/aws --version命令查看當前AWS CLI的版本號。

  2. 執行/usr/local/bin/aws configure配置AWS CLI,分別輸入下列幾項參數(每輸入一項參數按回車):

    參數

    說明

    示例

    AWS Access Key ID

    輸入您AWS賬號的Access Key ID,如沒有可以輸入任意字符。

    XXXXXXXXXX

    AWS Secret Access Key

    輸入您AWS賬號的Secret Access Key,如沒有可以輸入任意字符。

    XXXXXXXXXX

    Default region name

    輸入您AWSDynamoDB數據庫所在的地域,如沒有可以根據示例輸入。

    us-west-2

    Default output format

    默認的輸出格式,此處可以留空。

    json

    說明

    更多AWS CLI配置說明的相關信息,請參見AWS CLI基本配置

  3. 執行如下命令,連接目標DynamoDB協議兼容版實例并創建一張表。

    aws dynamodb --endpoint-url <DynamoDB協議兼容版實例的連接串地址> \ 
        create-table --table-name <需要創建的表名> \
        --attribute-definitions AttributeName=<屬性名>,AttributeType=<屬性的數據類型> \
        --key-schema AttributeName=<指定主鍵的屬性名>,KeyType=<主鍵的角色> \
        --provisioned-throughput ReadCapacityUnits=<預設讀吞吐量>,WriteCapacityUnits=<預設寫吞吐量>

    參數

    說明

    --endpoint-url

    需要連接的目標DynamoDB協議兼容版實例地址。需要以HTTP://開頭。

    create-table

    創建表的命令。

    說明

    更多信息,請參見create-table

    --table-name

    指定需要創建表的名稱。

    --attribute-definitions

    描述表或索引整體架構的屬性數組。該選項還需指定如下兩個子選項:

    • AttributeName:屬性的名稱。

    • AttributeType:屬性的數據類型。

      說明

      更多信息,請參見create-table

    --key-schema

    指定表或索引的主鍵屬性。該選項還需指定如下兩個子選項:

    • AttributeName:指定通過--attribute-definitions創建的某個屬性名為主鍵。

    • KeyType:指定主鍵的角色。

      說明

      更多信息,請參見create-table

    --provisioned-throughput

    指定表或索引的預設吞吐量。該選項還需指定如下兩個子選項:

    • ReadCapacityUnits:指定預設讀吞吐量。

    • WriteCapacityUnits:指定預設寫吞吐量。

    說明

    更多信息,請參見create-table

    示例:

    /usr/local/bin/aws dynamodb --endpoint-url http://dds-xxxx.mongodb.rds.aliyuncs.com:3717 #連接到指定的DynamoDB協議兼容版實例地址。 \
        create-table --table-name student #創建一個名為student的表。 \
        --attribute-definitions AttributeName=name,AttributeType=S AttributeName=age,AttributeType=N #表的架構中,有類型為Stringname屬性和類型為Numberage屬性。 \
        --key-schema AttributeName=name,KeyType=HASH AttributeName=age,KeyType=RANGE #指定name屬性為分區鍵,并指定age屬性為排序鍵。 \
        --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 #指定預設的讀寫吞吐量各為5。

    當命令行中打印出如下內容,則表示您已成功連接到目標DynamoDB協議兼容版實例并創建了一張表。

    {
        "TableDescription": {
            "TableName": "student",
            "KeySchema": [
                {
                    "AttributeName": "name",
                    "KeyType": "HASH"
                },
                {
                    "AttributeName": "age",
                    "KeyType": "RANGE"
                }
            ],
            "TableStatus": "CREATING",
            "TableSizeBytes": 0,
            "ItemCount": 0
        }
    }
                            

Python連接示例

  • 已安裝Python 2.6或更高版本。更多信息,請參見Python官網

  • 已安裝Boto3。更多信息,請參見安裝Boto3

以下代碼演示通過Python連接到DynamoDB協議兼容版實例并創建一個名為Book的表:

import boto3

def create_book_table(dynamodb=None):
 if not dynamodb:
 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("Tablestatus:", book_table.table_status)

Java連接示例

安裝AWS SDK for Java,具體請參見安裝AWS SDK for Java

以下代碼演示通過Java連接到DynamoDB協議兼容版實例并創建一個名為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 {
 
        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), // 分區鍵
 new KeySchemaElement("year", KeyType.RANGE)), // 排序鍵
 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());
 }
 }
}

其他程序代碼的連接示例

請參見開始使用DynamoDBAWS開發工具包