我想将在Windows机器上编写的lambda函数部署到我的AWS lambda。使用“以Zip格式上传”-它需要所有的node_modules和软件包文件。
但是我得到一个错误
Choose
如何从DB2驱动程序安装适合Linux的软件包?
答案 0 :(得分:1)
您可以使用docker运行Linux容器,并在主机和容器之间共享卷并在该容器上构建。
答案 1 :(得分:0)
有时,在Windows中安装Docker可能会很痛苦。 在Windows中安装Ubuntu(或任何其他发行版) 从Windows应用商店下载,然后安装所有依赖项,然后使用AWS CLI压缩所有模块并上传到Lambda
示例脚本可以是这样
# Remove zip file if already exit
rm index.zip
# Creating zip file
zip -r index.zip *
# Update lambda function, the present directory name should be same as the lambda function name present in AWS
lambdaName=${PWD##*/}
aws lambda update-function-code --function-name $lambdaName --zip-file fileb://index.zip
# Publish version
aws lambda publish-version --function-name $lambdaName
# Get latest version
version=$(aws lambda publish-version --function-name $lambdaName --description "updated via cli" --query Version | bc)
# Map alias to latest version
aws lambda update-alias --function-name $lambdaName \--function-version $version --name SANDBOX
# Create new alias
# aws lambda create-alias --function-name loyalty-gift-card-link-sl \ --function-version 2 --name SANDBOX2
答案 2 :(得分:0)
我遇到了类似的问题,所以我启动了一个t2.micro AWS Linux实例,并安装了docker,并创建了Lambda软件包。
如果有帮助,请按以下步骤操作。
从amzn-ami-hvm-2018.03.0.20181129-x86_64-gp2(ami-01e24be29428c15b2)启动amazonlinux的新EC2
安装docker
sudo su
sudo yum update -y
sudo yum install -y docker
sudo service docker start
sudo usermod -a -G docker ec2-user
log out and log in to pickup the added group
cd /home/ec2-user/
mkdir <LambdaProject>
回购中的结帐代码
git clone <repo>
构建docker,并安装Node.js 6.10及其依赖项
cd /home/ec2-user/
docker build --tag amazonlinux:nodejs .
安装尖锐的和查询字符串模块的依赖项(或所需的组件),并编译“原始响应”功能
docker run --rm --volume ${PWD}/lambda/origin-response-function:/build amazonlinux:nodejs /bin/bash -c "source ~/.bashrc; npm init -f -y; npm install sharp --save; npm install querystring --save; npm install url --save; npm install path --save; npm install --only=prod"
mkdir -p dist && cd lambda/origin-response-function && zip -FS -q -r ../../dist/origin-response-function.zip * && cd ../..
打包“原始响应”功能。
mkdir -p dist && cd lambda/origin-response-function && zip -FS -q -r ../../dist/origin-response-function.zip * && cd ../..
注意:软件包创建为dist / origin-response-function.zip
在us-east-1区域中创建S3存储桶以保存部署文件并上传在上述步骤中创建的zip文件。注意:您只能为美国东部(弗吉尼亚北部)地区的功能添加触发器。 铲斗:
将lambda软件包复制到s3存储桶
aws s3 cp dist/origin-response-function.zip s3://<bucket_name>/