AWS+NodeJS로 서버리스 환경 구축 ④
19320 단어 DynamoDB람다APIGatewayNode.jsAWS
소개
이번은 지난번의 계속으로, DELETE(대상 유저의 삭제), GET(모든 유저의 취득) PATCH(대상 유저의 갱신)를 만들어 갑니다.
DELETE (대상 사용자 삭제)
지정된 id를 바탕으로 대상 사용자가 삭제되도록 합니다.
Lambda 함수 작성 및 설정
출처
index.js'use strict';
const AWS = require('aws-sdk');
const myRegion = "us-east-2";
AWS.config.update({ region: myRegion});
exports.handler = async (event, context) => {
const documentClient = new AWS.DynamoDB.DocumentClient({ region: myRegion});
let responseBody = "";
let statusCode = 0;
const { id } = event.pathParameters;
const params = {
TableName: "Users",
Key: {
id: id
}
};
try {
const data = await documentClient.delete(params).promise();
responseBody = JSON.stringify(data);
statusCode = 204;
} catch (err) {
responseBody = `Unable to delete user: ${err}`;
statusCode = 403;
}
const response = {
statusCode: statusCode,
headers: {
"Content-Type": "application/json"
},
body: responseBody
};
return response;
};
메소드 작성 및 설정
테스트 실행 및 확인
테스트 버튼
삭제되었는지 확인
GET (모든 사용자 획득)
GET 메소드를 실행했을 때, 모든 유저가 취득되도록(듯이) 한다.
Lambda 함수 작성 및 설정
출처
index.js'use strict';
const AWS = require('aws-sdk');
const myRegion = "us-east-2";
AWS.config.update({ region: myRegion});
exports.handler = async (event, context) => {
const documentClient = new AWS.DynamoDB.DocumentClient({ region: myRegion});
let responseBody = "";
let statusCode = 0;
const params = {
TableName: "Users"
};
try {
const data = await documentClient.scan(params).promise();
responseBody = JSON.stringify(data);
statusCode = 200;
} catch (err) {
responseBody = `Unable to get users: ${err}`;
statusCode = 403;
}
const response = {
statusCode: statusCode,
headers: {
"Content-Type": "application/json"
},
body: responseBody
};
return response;
};
메소드 작성 및 설정
테스트 실행 및 확인
아무 것도 입력하지 않고 테스트 버튼.
PATCH (대상 사용자 업데이트)
PATCH 메소드를 실행했을 때, 대상의 유저가 갱신되도록(듯이) 한다.
Lambda 함수 작성 및 설정
출처
index.js/**
* 対象のユーザ情報を更新する
*/
'use strict';
const AWS = require('aws-sdk');
const myRegion = "us-east-2";
AWS.config.update({ region: myRegion});
exports.handler = async (event, context) => {
const documentClient = new AWS.DynamoDB.DocumentClient({ region: myRegion});
let responseBody = "";
let statusCode = 0;
const { id, firstname, lastname } = JSON.parse(event.body);
const params = {
TableName: "Users",
Key: {
id: id
},
UpdateExpression: "set firstname = :fname, lastname = :lname",
ExpressionAttributeValues: {
":fname": firstname,
":lname": lastname
},
ReturnValues: "UPDATED_NEW"
};
try {
const data = await documentClient.update(params).promise();
responseBody = JSON.stringify(data);
statusCode = 204;
} catch (err) {
responseBody = `Unable to patch user ${err}`;
statusCode = 403;
}
const response = {
statusCode: statusCode,
headers: {
"Content-Type": "application/json"
},
body: responseBody
};
return response;
};
메소드 작성 및 설정
아래와 같이 설정, 빨간색 테두리를 사용하는 것이 번거로워졌습니다.
테스트 실행 및 확인
요청 본문{
"id": "02",
"firstname": "update_firstname",
"lastname": "update_lastname"
}
업데이트되는지 확인
끝에
이제 서버리스로 REST API를 사용한 CRUD 작성 환경 구축을 했습니다.
다음은 API Gateway+Lambda(NodeJS)+S3를 조합해 나가려고 합니다.
Reference
이 문제에 관하여(AWS+NodeJS로 서버리스 환경 구축 ④), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/isacRU/items/dca62b81424510ad0b9c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
지정된 id를 바탕으로 대상 사용자가 삭제되도록 합니다.
Lambda 함수 작성 및 설정
출처
index.js
'use strict';
const AWS = require('aws-sdk');
const myRegion = "us-east-2";
AWS.config.update({ region: myRegion});
exports.handler = async (event, context) => {
const documentClient = new AWS.DynamoDB.DocumentClient({ region: myRegion});
let responseBody = "";
let statusCode = 0;
const { id } = event.pathParameters;
const params = {
TableName: "Users",
Key: {
id: id
}
};
try {
const data = await documentClient.delete(params).promise();
responseBody = JSON.stringify(data);
statusCode = 204;
} catch (err) {
responseBody = `Unable to delete user: ${err}`;
statusCode = 403;
}
const response = {
statusCode: statusCode,
headers: {
"Content-Type": "application/json"
},
body: responseBody
};
return response;
};
메소드 작성 및 설정
테스트 실행 및 확인
테스트 버튼
삭제되었는지 확인
GET (모든 사용자 획득)
GET 메소드를 실행했을 때, 모든 유저가 취득되도록(듯이) 한다.
Lambda 함수 작성 및 설정
출처
index.js'use strict';
const AWS = require('aws-sdk');
const myRegion = "us-east-2";
AWS.config.update({ region: myRegion});
exports.handler = async (event, context) => {
const documentClient = new AWS.DynamoDB.DocumentClient({ region: myRegion});
let responseBody = "";
let statusCode = 0;
const params = {
TableName: "Users"
};
try {
const data = await documentClient.scan(params).promise();
responseBody = JSON.stringify(data);
statusCode = 200;
} catch (err) {
responseBody = `Unable to get users: ${err}`;
statusCode = 403;
}
const response = {
statusCode: statusCode,
headers: {
"Content-Type": "application/json"
},
body: responseBody
};
return response;
};
메소드 작성 및 설정
테스트 실행 및 확인
아무 것도 입력하지 않고 테스트 버튼.
PATCH (대상 사용자 업데이트)
PATCH 메소드를 실행했을 때, 대상의 유저가 갱신되도록(듯이) 한다.
Lambda 함수 작성 및 설정
출처
index.js/**
* 対象のユーザ情報を更新する
*/
'use strict';
const AWS = require('aws-sdk');
const myRegion = "us-east-2";
AWS.config.update({ region: myRegion});
exports.handler = async (event, context) => {
const documentClient = new AWS.DynamoDB.DocumentClient({ region: myRegion});
let responseBody = "";
let statusCode = 0;
const { id, firstname, lastname } = JSON.parse(event.body);
const params = {
TableName: "Users",
Key: {
id: id
},
UpdateExpression: "set firstname = :fname, lastname = :lname",
ExpressionAttributeValues: {
":fname": firstname,
":lname": lastname
},
ReturnValues: "UPDATED_NEW"
};
try {
const data = await documentClient.update(params).promise();
responseBody = JSON.stringify(data);
statusCode = 204;
} catch (err) {
responseBody = `Unable to patch user ${err}`;
statusCode = 403;
}
const response = {
statusCode: statusCode,
headers: {
"Content-Type": "application/json"
},
body: responseBody
};
return response;
};
메소드 작성 및 설정
아래와 같이 설정, 빨간색 테두리를 사용하는 것이 번거로워졌습니다.
테스트 실행 및 확인
요청 본문{
"id": "02",
"firstname": "update_firstname",
"lastname": "update_lastname"
}
업데이트되는지 확인
끝에
이제 서버리스로 REST API를 사용한 CRUD 작성 환경 구축을 했습니다.
다음은 API Gateway+Lambda(NodeJS)+S3를 조합해 나가려고 합니다.
Reference
이 문제에 관하여(AWS+NodeJS로 서버리스 환경 구축 ④), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/isacRU/items/dca62b81424510ad0b9c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
'use strict';
const AWS = require('aws-sdk');
const myRegion = "us-east-2";
AWS.config.update({ region: myRegion});
exports.handler = async (event, context) => {
const documentClient = new AWS.DynamoDB.DocumentClient({ region: myRegion});
let responseBody = "";
let statusCode = 0;
const params = {
TableName: "Users"
};
try {
const data = await documentClient.scan(params).promise();
responseBody = JSON.stringify(data);
statusCode = 200;
} catch (err) {
responseBody = `Unable to get users: ${err}`;
statusCode = 403;
}
const response = {
statusCode: statusCode,
headers: {
"Content-Type": "application/json"
},
body: responseBody
};
return response;
};
PATCH 메소드를 실행했을 때, 대상의 유저가 갱신되도록(듯이) 한다.
Lambda 함수 작성 및 설정
출처
index.js
/**
* 対象のユーザ情報を更新する
*/
'use strict';
const AWS = require('aws-sdk');
const myRegion = "us-east-2";
AWS.config.update({ region: myRegion});
exports.handler = async (event, context) => {
const documentClient = new AWS.DynamoDB.DocumentClient({ region: myRegion});
let responseBody = "";
let statusCode = 0;
const { id, firstname, lastname } = JSON.parse(event.body);
const params = {
TableName: "Users",
Key: {
id: id
},
UpdateExpression: "set firstname = :fname, lastname = :lname",
ExpressionAttributeValues: {
":fname": firstname,
":lname": lastname
},
ReturnValues: "UPDATED_NEW"
};
try {
const data = await documentClient.update(params).promise();
responseBody = JSON.stringify(data);
statusCode = 204;
} catch (err) {
responseBody = `Unable to patch user ${err}`;
statusCode = 403;
}
const response = {
statusCode: statusCode,
headers: {
"Content-Type": "application/json"
},
body: responseBody
};
return response;
};
메소드 작성 및 설정
아래와 같이 설정, 빨간색 테두리를 사용하는 것이 번거로워졌습니다.
테스트 실행 및 확인
요청 본문
{
"id": "02",
"firstname": "update_firstname",
"lastname": "update_lastname"
}
업데이트되는지 확인
끝에
이제 서버리스로 REST API를 사용한 CRUD 작성 환경 구축을 했습니다.
다음은 API Gateway+Lambda(NodeJS)+S3를 조합해 나가려고 합니다.
Reference
이 문제에 관하여(AWS+NodeJS로 서버리스 환경 구축 ④), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/isacRU/items/dca62b81424510ad0b9c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(AWS+NodeJS로 서버리스 환경 구축 ④), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/isacRU/items/dca62b81424510ad0b9c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)