markdown Lambda包部署
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown Lambda包部署相关的知识,希望对你有一定的参考价值。
## 想定パラメータ
- s3バケット名 : パッケージング化したzipを格納
- destinationフォルダ : パッケージ前のソース。ライブラリ込
- src
## 提供言語
- python2.7
- python3
- node6
- node8
とりあえずこんなもん
## コマンド引数
- deploy
- build
- init
- run
- destroy
- clean
## Sample
```Makefile
# Makefile for cchan dmp
#
# Dependencies
# - pip install awscli
# - aws configure
#
# Useage
# make target<target name(recommend.py -> recommend)>
VERSION := $(shell date +%Y%m%d%H%M%S)
PKG_NAME = ambda-$(VERSION)
PWD = $(shell pwd)
BUCKET_NAME = bucketname
S3_BUCKET = s3://$(BUCKET_NAME)
# BIN_BUCKET= $(S3_BUCKET)/bin/
# LIB_BUCKET= $(S3_BUCKET)/lib/
SRC_BUCKET= src/
DEST_BUCKET= $(S3_BUCKET)/$(SRC_BUCKET)
SRC_DIR = $(PWD)/src/main/python
BIN_DIR = $(PWD)/bin
RESOURCE_DIR = $(PWD)/src/main/resources
DEST_DIR = $(PWD)/dest/
PKG_DIR = $(PWD)/pkg/$(PKG_NAME)
ROLE_NAME = arn:aws:iam::xxxxx:role/lambda_execute
# LIB_DIR = $(PWD)/lib
# DEST_DIR = $(PWD)/dest
ifdef target
TARGET = $(target)
else
TARGET = line_scraping
endif
ifdef funcname
FANC_NAME = $(funcname)
else
FANC_NAME = sample
endif
ifdef argfile
LAMBDA_ARGS = $(argfile)
else
LAMBDA_ARGS = $(RESOURCE_DIR)/test_args.json
endif
all: clean build deploy
build:
@echo "######### Build python package #########"
mkdir -p $(PKG_DIR)
pip install -r requirements_lambda.txt -t $(PKG_DIR)
cp -R $(SRC_DIR)/* $(PKG_DIR)
cp -R $(BIN_DIR) $(PKG_DIR)
# cp -R $(RESOURCE_DIR)/* $(PKG_NAME)
cd $(PKG_DIR) && zip -ry $(DEST_DIR)$(PKG_NAME).zip . -x .gitkeep .DS_Store *.py[co] *.swp *.swo
deploy:
@echo "######### Deploy to lambda package #########"
aws s3 cp $(DEST_DIR)$(PKG_NAME).zip $(DEST_BUCKET)
aws lambda update-function-code --function-name $(FANC_NAME) --s3-bucket $(BUCKET_NAME) --s3-key $(SRC_BUCKET)$(PKG_NAME).zip --publish
new: clean build
@echo "######### Create lambda function #########"
aws s3 cp $(DEST_DIR)$(PKG_NAME).zip $(DEST_BUCKET)
aws lambda create-function --function-name $(FANC_NAME) --runtime python3.6 --role $(ROLE_NAME) --handler $(TARGET).lambda_handler --code S3Bucket=$(BUCKET_NAME),S3Key=$(SRC_BUCKET)$(PKG_NAME).zip
clean:
@echo "######### Clean project #########"
find . -name "*.py[co]" | xargs rm -rf
cd $(DEST_DIR) && ls | egrep -v ".gitkeep|\.|\.\." | xargs rm -rf
cd $(PWD)/pkg && ls | egrep -v ".gitkeep|\.|\.\." | xargs rm -rf
run:
@echo "######### Run project #########"
aws lambda invoke-async --function-name $(FANC_NAME) --invoke-args $(LAMBDA_ARGS)
```
これベースにできそう
以上是关于markdown Lambda包部署的主要内容,如果未能解决你的问题,请参考以下文章
使用boto3下载Lambda函数的部署包
如何增加 AWS lambda 部署包的最大大小 (RequestEntityTooLargeException)?
通过 Cloudformation、CodeBuild 和 CodePipeline 将 python 包部署到 AWS Lambda
markdown 设置和部署nuget包
Django REST framwork_01_部署
markdown [Java 8 lambda] #java