APIGateway에서 Lambda를 통해 S3 콘텐츠 얻기
4478 단어 HTML람다APIGatewayNode.jsS3
개요
S3에 저장된 HTLM 파일을 Lmabda를 통해 API Gateway에서 가져옵니다.
지금 만들고 있는 앱이 API Gateway에서 직접 S3를 붙이고 있습니다만, 컨텐츠를 백엔드로 동적 생성하고 싶어졌기 때문에 사이에 Lambda의 처리를 씹게 하기로 했습니다.
백엔드 로직을 구축하기 전에 우선 솔직하게 만드는 방법을 조사했습니다.
환경
Node.js 8.10
구현
1. Lamnda 구현
const AWS = require('aws-sdk');
exports.handler = async (event) => {
AWS.config.region = 'ap-northeast-1';
const s3 = new AWS.S3();
try {
let data = await s3.getObject({
Bucket: 'bucket_name',
Key: 'path/to/file.html'
}).promise();
return {
statusCode: 200,
headers: {"Content-Type": "text/html"},
body: data.Body.toString(),
};
} catch (e) {
return {
statusCode: 500,
body: JSON.stringify(e.message),
};
}
};
2. API Gateway 설정
LAMBDA_PROXY
text/html
포인트
Content-Type 지정
Lambda에서
Content-Type
를 명시 적으로 지정하지 않으면 application/json
로 처리됩니다.s3.getObject()
의 구조텍스트 데이터를 돌려줄 때는
data.Body.toString()
로 디코드 한다.데이터 구조에 대해 자세히 알고 싶다면
JSON.stringify(data)
를 반환하고 테스트하면 알기 쉽습니다.참고문헌
여기를 읽으면 대답은 쓰여있다.
htps : / / n kgr. 하테나 bぉg. 코m/엔트리/2018/06/26/220000
Reference
이 문제에 관하여(APIGateway에서 Lambda를 통해 S3 콘텐츠 얻기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ksilverwall/items/4a6b4ffe58a82c1041b0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)