Lambda节点-在Linux上部署的Windows上构建

时间:2019-05-07 19:39:47

标签: aws-lambda

我想将在Windows机器上编写的lambda函数部署到我的AWS lambda。使用“以Zip格式上传”-它需要所有的node_modules和软件包文件。

但是我得到一个错误

Choose

如何从DB2驱动程序安装适合Linux的软件包?

3 个答案:

答案 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>/