LocalStackでawscliを実行する手順 - GreenAvenue/geranium GitHub Wiki

Usage

How to build Lambda with LocalStack.

Setup

Put the file as in the following example.

# geranium/packages/infra/
.
├── README.md
├── docker-compose.yml
└── scripts
    └── lambda.py

Start LocalStack service in advance.

# lambda.py

import json

def lambda_handler(event, context):
    return response({'message': 'Hello LocalStack'}, 200)


def response(message, status_code):
    return {
        'statusCode': str(status_code),
        'body': json.dumps(message),
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
    }

Execute command to make zip.

zip scripts/lambda.zip scripts/lambda.py

awscli

Set in advance. Access key can be set to dummy.

$ aws configure --profile localstack
AWS Access Key ID [None]: dummy
AWS Secret Access Key [None]: dummy
Default region name [None]: us-east-1
Default output format [None]: text

Execute by specifying "--profile".

$ aws --endpoint-url=http://localhost:4574 \
--profile localstack lambda create-function \
--function-name=func_1 \
--runtime=python3.8 \
--role=r1 \
--handler=lambda.lambda_handler \
--zip-file fileb://scripts/lambda.zip
OhOG9a3aq6aCMgBxgTZyVt/kvMLz8HmkikU9DHSKEAI=    387             arn:aws:lambda:us-east-1:000000000000:function:func_1   func_1  lambda.lambda_handler   2020-03-13T16:29:30.326+0000    499766e4-59fa-4512-b6f7-92a8ea28f7e7    r1      python3.8       Active  3       $LATESTTRACINGCONFIG   PassThrough

Overview

local_stack_lambda