├── .gitignore ├── package.json ├── Dockerfile ├── app.js └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | package-lock.json 2 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "my-app", 3 | "dependencies": { 4 | "axios": "^0.21.0" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM amazon/aws-lambda-nodejs:12 2 | COPY app.js package*.json ./ 3 | RUN npm install 4 | CMD [ "app.lambdaHandler" ] -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | const axios = require("axios"); 3 | 4 | exports.lambdaHandler = async (event, context, callback) => { 5 | const url = "https://google.com/"; 6 | console.log(url); 7 | const res = await axios.get(url).then((res) => 8 | callback(null, { 9 | statusCode: res.status, 10 | body: res.data, 11 | headers: { 12 | "Content-Type": "text/html", 13 | }, 14 | }) 15 | ); 16 | }; 17 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # lambda-container-support-sample 2 | 3 | re:Invent 2020でAWS LambdaがContainerをサポートしたのでお試し。 4 | 5 | 実際に実行するにはこのリポジトリを`git clone`して手元で`docker build`してECRにpushしておく必要があります。 6 | 7 | 以下コマンド実行サンプル 8 | 9 | ``` 10 | git clone https://github.com/Keisuke69/lambda-container-support-sample 11 | cd lambda-container-support-sample 12 | docker build -t lambda-container-support-sample . 13 | aws ecr create-repository --repository-name lambda-container-support-sample --image-scanning-configuration scanOnPush=true //なければ作る。既存のものでもOK 14 | docker tag lambda-container-support-sample:latest .dkr.ecr.us-east-1.amazonaws.com/lambda-container-support-sample 15 | aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin .dkr.ecr.us-east-1.amazonaws.com 16 | docker push .dkr.ecr.us-east-1.amazonaws.com/lambda-container-support-sample:latest 17 | ``` 18 | 19 | Lambda側は新たにファンクションを作るときにこのECR上のイメージを指定するだけです。 20 | 21 | ファンクションの内容は単純にGoogleのトップページをリクエストしてそれを出力してるだけです。 22 | 23 | 24 | --------------------------------------------------------------------------------