Node.js에서 시작하기 - AWS SDK for JavaScript

곧 AWS SDK for JavaScript(v2)에 대한 지원이 종료될 예정임을 알려드립니다. AWS SDK for JavaScript v3로 마이그레이션하실 것을 권장합니다. 마이그레이션 날짜, 추가 세부 정보 및 방법에 대한 자세한 내용은 링크된 공지 사항을 참조하세요.

Node.js에서 시작하기

JavaScript code example that applies to Node.js execution

이 Node.js 코드 예제는 다음을 보여 줍니다.

  • 프로젝트를 위한 package.json 매니페스트를 생성하는 방법

  • 프로젝트에서 사용하는 모듈을 설치 및 포함하는 방법

  • AWS.S3 클라이언트 클래스에서 Amazon Simple Storage Service(S3) 서비스 객체를 생성하는 방법

  • Amazon S3 버킷을 생성하고 해당 버킷에 객체를 업로드하는 방법

시나리오

이 예제에서는 Amazon S3 버킷을 생성한 다음 이 버킷에 텍스트 객체를 추가하는 Node.js 모듈을 간단하게 설정 및 실행하는 방법을 보여줍니다.

Amazon S3의 버킷 이름은 전역적으로 고유해야 하기 때문에 이 예제에는 버킷 이름에 통합할 수 있는 고유한 ID 값을 생성하는 타사 Node.js 모듈이 포함되어 있습니다. 이 추가 모듈의 이름은 uuid입니다.

사전 필수 작업

이 예제를 설정하고 실행하려면 먼저 이러한 작업들을 완료해야 합니다.

  • Node.js 모듈 개발을 위한 작업 디렉터리를 생성합니다. 이 디렉터리의 이름을 awsnodesample로 지정합니다. 디렉터리는 애플리케이션에서 업데이트할 수 있는 위치에 생성해야 합니다. 예를 들어 Windows에서는 "C:\Program Files" 아래에 디렉터리를 생성하지 마십시오.

  • Node.js를 설치합니다. 자세한 내용은 Node.js 웹 사이트를 참조하세요. https://nodejs.org/en/download/current/에서는 다양한 운영 체제에 맞는 Node.js의 최신 버전 및 LTS 버전 다운로드를 찾을 수 있습니다.

1단계: SDK 및 종속성 설치

Node.js 패키지 관리자인 npm으로 SDK for JavaScript를 설치합니다.

이 패키지의 awsnodesample 디렉터리에서 명령줄에 다음을 입력합니다.

npm install aws-sdk

이 명령은 프로젝트에 SDK for JavaScript를 설치하고 package.json을 업데이트하여 SDK를 프로젝트 종속성으로 나열합니다. npm 웹 사이트에서 "aws-sdk"를 검색하여 이 패키지에 대한 정보를 찾을 수 있습니다.

다음으로, 명령줄에 다음을 입력하여 프로젝트에 uuid 모듈을 설치합니다. 그러면 모듈이 설치되고 package.json이 업데이트됩니다. uuid에 대한 자세한 내용은 https://www.npmjs.com/package/uuid에서 모듈 페이지를 참조하세요.

npm install uuid

이러한 패키지와 연결된 코드는 프로젝트의 node_modules 하위 디렉터리에 설치됩니다.

Node.js 패키지 설치에 대한 자세한 내용은 로컬에서 패키지 다운로드 및 설치npm(Node.js 패키지 관리자) 웹 사이트의 Node.js 모듈 생성 섹션을 참조하세요. AWS SDK for JavaScript 설치 및 다운로드에 대한 자세한 내용은 SDK for JavaScript 설치 섹션을 참조하세요.

2단계: 자격 증명 구성

SDK에서 계정과 해당 계정의 리소스에만 액세스할 수 있도록 AWS에 자격 증명을 제공해야 합니다. 계정 자격 증명을 받는 방법에 대한 자세한 내용은 AWS를 사용한 SDK 인증 섹션을 참조하세요.

이러한 정보를 보관하려면 공유 자격 증명 파일을 만드는 것이 좋습니다. 자세한 방법은 공유 인증 자격 증명 파일에서 Node.js에 인증 자격 증명 로드(을)를 참조하세요. 자격 증명 파일의 모양은 다음 예와 유사해야 합니다.

[default] aws_access_key_id = YOUR_ACCESS_KEY_ID aws_secret_access_key = YOUR_SECRET_ACCESS_KEY

Node.js로 다음 코드를 실행하여 자격 증명을 올바르게 설정했는지 여부를 확인할 수 있습니다.

var AWS = require("aws-sdk"); AWS.config.getCredentials(function(err) { if (err) console.log(err.stack); // credentials not loaded else { console.log("Access key:", AWS.config.credentials.accessKeyId); } });

마찬가지로, config 파일에서 리전을 올바르게 설정한 경우 AWS_SDK_LOAD_CONFIG 환경 변수를 임의의 값으로 설정하고 다음 코드를 사용하여 해당 값을 표시할 수 있습니다.

var AWS = require("aws-sdk"); console.log("Region: ", AWS.config.region);

3단계: 프로젝트용 패키지 JSON 생성

awsnodesample 프로젝트 디렉터리를 생성한 다음 Node.js 프로젝트에 대한 메타데이터를 보관하기 위한 package.json 파일을 만들어 추가합니다. Node.js 프로젝트에서 package.json을 사용하는 방법에 관한 자세한 내용은 패키지 .json 파일 생성을 참조하세요.

프로젝트 디렉터리에서 package.json이라는 새 파일을 생성합니다. 그런 다음 이 파일에 다음 JSON을 추가합니다.

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

파일을 저장합니다. 필요한 모듈을 설치하면 이 파일의 dependencies 부분이 완료됩니다. GitHub에서 이러한 종속성의 예제를 보여주는 JSON 파일을 찾을 수 있습니다.

4단계: Node.js 작성

예제 코드를 포함할 sample.js라는 새 파일을 만듭니다. require 함수 호출을 추가하고 사용할 수 있도록 SDK for JavaScript 및 uuid 모듈을 포함하는 것으로 시작합니다.

인식 가능한 접두사(이 경우에는 'node-sdk-sample-')에 고유한 ID 값을 추가하여 Amazon S3 버킷을 생성하는 데 사용할 고유한 버킷 이름을 작성합니다. uuid 모듈을 호출하여 고유한 ID를 생성합니다. 그런 다음 버킷에 객체를 업로드하는 데 사용하는 Key 파라미터의 이름을 생성합니다.

promise 객체를 생성하여 AWS.S3 서비스 객체의 createBucket 메서드를 호출합니다. 성공적인 응답 시 새로 생성한 버킷에 텍스트를 업로드하는 데 필요한 파라미터를 생성합니다. 다른 promise를 사용하여 putObject 메서드를 호출해 버킷에 텍스트 객체를 업로드합니다.

// 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); });

이 샘플 코드는 GitHub에서 찾을 수 있습니다.

5단계: 샘플 실행

다음 명령을 입력하여 샘플을 실행합니다.

node sample.js

업로드에 성공하면 명령줄에 확인 메시지가 표시됩니다. 또한 Amazon S3 콘솔에서도 버킷 및 업로드된 텍스트 객체를 찾을 수 있습니다.