Nodejs AWS SDK模块node-aws-sdk的使用

Nodejs AWS SDK模块node-aws-sdk的使用
node-aws-sdk 是 Node.js 环境中使用 AWS 服务的官方 SDK。它提供了一种简单的方法来与 AWS 的各种服务进行交互,如 S3、DynamoDB、EC2 等等。下面是一些基本的使用示例。

安装

首先,你需要安装 aws-sdk 模块。你可以通过 npm 来安装:

npm install aws-sdk

配置

在使用任何 AWS 服务之前,你需要配置你的 AWS 凭证和区域。你可以通过环境变量、配置文件或直接在代码中设置这些值。

使用环境变量

export AWS_ACCESS_KEY_ID=your_access_key_id
export AWS_SECRET_ACCESS_KEY=your_secret_access_key
export AWS_REGION=us-west-2

在代码中设置

const AWS = require('aws-sdk');

AWS.config.update({
    accessKeyId: 'your_access_key_id',
    secretAccessKey: 'your_secret_access_key',
    region: 'us-west-2'
});

示例:使用 S3 服务

以下是一个简单的例子,展示如何使用 S3 服务创建一个桶(bucket)并上传一个文件。

const AWS = require('aws-sdk');
const s3 = new AWS.S3();

// 创建一个新的桶
async function createBucket(bucketName) {
    try {
        const data = await s3.createBucket({ Bucket: bucketName }).promise();
        console.log(`Bucket ${bucketName} created`);
    } catch (error) {
        console.error(error);
    }
}

// 上传文件到 S3 桶
async function uploadFile(bucketName, filePath, key) {
    const fileStream = fs.createReadStream(filePath);
    fileStream.on('error', (err) => {
        console.log('File Error', err);
    });

    const params = {
        Bucket: bucketName,
        Key: key,
        Body: fileStream
    };

    try {
        const data = await s3.upload(params).promise();
        console.log(`File uploaded successfully. ${data.Location}`);
    } catch (error) {
        console.error(error);
    }
}

(async () => {
    const bucketName = 'your-bucket-name';
    const filePath = '/path/to/your/file.txt';
    const key = 'file.txt';

    // 创建桶
    await createBucket(bucketName);

    // 上传文件
    await uploadFile(bucketName, filePath, key);
})();

示例:使用 DynamoDB 服务

以下是如何使用 DynamoDB 创建表并插入数据的例子:

const AWS = require('aws-sdk');
const dynamoDb = new AWS.DynamoDB.DocumentClient();

// 创建表
async function createTable() {
    const params = {
        TableName: 'YourTableName',
        KeySchema: [
            { AttributeName: 'id', KeyType: 'HASH' },  // Partition key
        ],
        AttributeDefinitions: [
            { AttributeName: 'id', AttributeType: 'S' },
        ],
        ProvisionedThroughput: {
            ReadCapacityUnits: 1,
            WriteCapacityUnits: 1
        }
    };

    try {
        const data = await dynamoDb.createTable(params).promise();
        console.log('Table created');
    } catch (error) {
        console.error(error);
    }
}

// 插入数据
async function putItem() {
    const params = {
        TableName: 'YourTableName',
        Item: {
            id: '1',
            name: 'John Doe'
        }
    };

    try {
        const data = await dynamoDb.put(params).promise();
        console.log('Item inserted');
    } catch (error) {
        console.error(error);
    }
}

(async () => {
    // 创建表
    await createTable();

    // 插入数据
    await putItem();
})();

以上就是使用 node-aws-sdk 进行基本操作的一些示例。你可以根据需要调整这些代码以适应你的具体需求。


3 回复

哦,你说的是node-aws-sdk?哈哈,这名字听起来就像是一位穿着牛仔裤在AWS云端漫步的牛仔!不过实际上,它就是官方的AWS SDK。要开始使用,首先确保安装了它:

npm install aws-sdk

然后,像这样初始化:

const AWS = require('aws-sdk');
AWS.config.update({region: 'YOUR_REGION'});

比如你想操作S3,就这么干:

let s3 = new AWS.S3();
s3.listBuckets(function(err, data) {
  if (err) console.log(err)
  else console.log(data);
});

简单吧?记住,AWS的服务多如牛毛,每个服务都有自己的方法和配置,但基本套路都差不多。祝你在AWS的世界里牛气冲天!


node-aws-sdk 是 Node.js 中用于与 AWS 服务进行交互的一个非常流行的库。首先,你需要确保已经安装了 aws-sdk 模块。如果还没有安装,可以通过 npm 安装它:

npm install aws-sdk

以下是一些常见的 aws-sdk 使用示例,包括如何配置、获取 S3 文件、上传文件到 S3 和调用 Lambda 函数。

1. 配置 AWS SDK

在使用 AWS SDK 前,需要配置访问密钥 ID 和秘密访问密钥。通常这些信息可以存储在环境变量中,然后通过 AWS.config.update() 方法来加载这些配置。

const AWS = require('aws-sdk');

// 加载配置
AWS.config.update({
    accessKeyId: process.env.AWS_ACCESS_KEY_ID,
    secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
    region: 'us-west-2' // 设置你的区域
});

2. 列出 S3 桶中的所有对象

const s3 = new AWS.S3();

async function listS3Objects(bucketName) {
    try {
        const data = await s3.listObjects({Bucket: bucketName}).promise();
        console.log(data.Contents);
    } catch (err) {
        console.error(err);
    }
}

listS3Objects('your-bucket-name');

3. 上传文件到 S3

const fs = require('fs');

async function uploadFileToS3(bucketName, filePath, key) {
    const fileStream = fs.createReadStream(filePath);
    fileStream.on('error', err => console.log('File error', err));

    const uploadParams = {
        Bucket: bucketName,
        Key: key,
        Body: fileStream
    };

    const s3 = new AWS.S3();
    try {
        await s3.upload(uploadParams).promise();
        console.log("Upload Complete");
    } catch (err) {
        console.error("Error uploading:", err);
    }
}

uploadFileToS3('your-bucket-name', '/path/to/your/local/file.txt', 'uploaded-file.txt');

4. 调用 Lambda 函数

const lambda = new AWS.Lambda();

async function invokeLambda(functionName) {
    const params = {
        FunctionName: functionName,
        InvocationType: 'RequestResponse'
    };

    try {
        const result = await lambda.invoke(params).promise();
        console.log("Lambda output:", result.Payload);
    } catch (err) {
        console.error("Error invoking lambda:", err);
    }
}

invokeLambda('YourLambdaFunctionName');

以上就是使用 aws-sdk 的一些基本示例。你可以根据具体需求调整这些代码。注意,为了安全考虑,在实际部署时,应避免硬编码访问密钥和秘密访问密钥,而是应该使用 IAM 角色或其他安全的方式管理凭证。

node-aws-sdk是AWS SDK的一个版本,适用于Node.js环境。使用它首先需要安装这个模块,可以通过npm来安装:

npm install aws-sdk

安装完成后,可以引入该模块并配置你的AWS访问密钥和秘密访问密钥:

var AWS = require('aws-sdk');
AWS.config.update({
  accessKeyId: 'your_access_key_id',
  secretAccessKey: 'your_secret_access_key',
  region: 'us-west-2' // 设置你的区域
});

之后,你可以创建相应服务的对象并使用,例如:

var s3 = new AWS.S3();
s3.listBuckets(function(err, data) {
  if (err) console.log(err, err.stack);
  else     console.log(data);
});

以上就是使用node-aws-sdk的基本步骤。

回到顶部