Aws lambda 节点,Lambda-在windows上构建并在Linux上部署

Aws lambda 节点,Lambda-在windows上构建并在Linux上部署,aws-lambda,Aws Lambda,我想将一个写在windows机器上的lambda函数部署到我的AWS lambda。使用Upload as Zip-它需要所有的节点模块和包文件 但我犯了个错误 errorMessage:/var/task/node\u modules/ibm\u db/build/Release/odbc\u bindings.node:ELF头无效 如何从DB2驱动程序安装适合linux的软件包?您可以使用docker运行主机和容器之间具有共享卷的linux容器,并在容器上进行构建。在windows中安装d

我想将一个写在windows机器上的lambda函数部署到我的AWS lambda。使用Upload as Zip-它需要所有的节点模块和包文件

但我犯了个错误

errorMessage:/var/task/node\u modules/ibm\u db/build/Release/odbc\u bindings.node:ELF头无效


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

您可以使用docker运行主机和容器之间具有共享卷的linux容器,并在容器上进行构建。

在windows中安装docker有时会很痛苦,我也遇到过同样的情况。 在中安装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

我有一个类似的问题,所以我启动了一个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>
安装sharp和querystring模块依赖项或您需要的,并编译“Origin Response”函数

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 bucket来保存部署文件,并上传在上述步骤中创建的zip文件。注意:您只能为美国东北弗吉尼亚州地区的函数添加触发器。 桶:

将lambda包复制到s3存储桶

aws s3 cp dist/origin-response-function.zip s3://<bucket_name>/
尝试使用WSL
mkdir -p dist && cd lambda/origin-response-function && zip -FS -q -r ../../dist/origin-response-function.zip * && cd ../..
aws s3 cp dist/origin-response-function.zip s3://<bucket_name>/