Tạo ứng dụng đơn giản trên AWS bằng Node js

Trong bài viết này chúng tôi sẽ hướng dẫn các bạn cách thiết lập môi trường và chạy một module Node js đơn giản tạo bucket và upload file lên AWS.

Vì bucket trên AWS cần đặt tên là duy nhất do vậy trong ví dụ này cần khai báo bổ sung thêm uuid

Cấu hình tài khoản xác thực

Bạn có thể cấu hình tài khoản xác thực dùng chung SDK và lưu trong file cấu hình. Khi AWS SDK Javascript kết nối thì sẽ tự động tìm kiếm file tài khoản dùng chung này theo tên credentials, tại đường dẫn là ~/.aws/credentials

[default]
aws_access_key_id = YOUR_ACCESS_KEY_ID
aws_secret_access_key = YOUR_SECRET_ACCESS_KEY

Thông tin cấu hình được lưu tai đường dẫn ~/.aws/config

# ~/.aws/config
[default]
region=ap-southeast-1
output=json

Tạo gói JSON cho project

File JSON được tạo trong thư mục với thư mục chưa Project awsnodesample

{
  "dependencies": {},
  "name": "aws-nodejs-sample",
  "description": "A simple Node.js application illustrating usage of the AWS SDK for Node.js.",
  "version": "1.0.1",
  "main": "sample.js",
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "NAME",
  "license": "ISC"
}

Cài đặt SDK và dependencies

npm install aws-sdk
npm install uuid

Viết mã code

// Load the SDK and UUID
var AWS = require('aws-sdk');
var uuid = require('uuid');

// Create unique bucket name
var bucketName = 'node-sdk-sample-' + uuid.v4();
// Create name for uploaded object key
var keyName = 'hello_world.txt';

// Create a promise on S3 service object
var bucketPromise = new AWS.S3({apiVersion: '2006-03-01'}).createBucket({Bucket: bucketName}).promise();

// Handle promise fulfilled/rejected states
bucketPromise.then(
  function(data) {
    // Create params for putObject call
    var objectParams = {Bucket: bucketName, Key: keyName, Body: 'Hello World!'};
    // Create object upload promise
    var uploadPromise = new AWS.S3({apiVersion: '2006-03-01'}).putObject(objectParams).promise();
    uploadPromise.then(
      function(data) {
        console.log("Successfully uploaded data to " + bucketName + "/" + keyName);
      });
}).catch(
  function(err) {
    console.error(err, err.stack);
});

Chạy ứng dụng

node sample.js

Tham khảo

https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-shared.html

https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-started-nodejs.html

Leave a Reply

Your email address will not be published. Required fields are marked *