首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Lambda的node-canvas构建

AWS Lambda的node-canvas构建
EN

Stack Overflow用户
提问于 2015-11-26 10:57:29
回答 2查看 1.4K关注 0票数 3

我是一个Linux & node新手。我正在尝试在AWS Lambda中运行FabricJS (需要node-canvas)。我已经能够按照说明在AWS Linux EC2上启动和运行,然而,Lambda让我束手无策。谁有任何提示或指示,如何让这为AW Lambda编译?

EN

回答 2

Stack Overflow用户

发布于 2016-06-30 02:53:00

我在Node Canvas GitHub site中发现了这个问题。提问者也试图在Lambda中运行FabricJS。以下是相关部分的答案:

任务任务确保您在lambda当前使用的同一个AMI上编译:http://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html

  • Lambda运行在//
  1. (这是您解压缩时的路径),因此压缩文件根目录下的something.so将位于var

然后,我们希望使用“rpath”来构建我们的库:

代码语言:javascript
复制
export LDFLAGS=-Wl,-rpath=/var/task/

根据:https://github.com/Automattic/node-canvas/wiki/Installation---Amazon-Linux-AMI-%28EC2%29编译

您可能希望将prefix= ~/canvas设置为将所有文件放在一个位置。

使用npm_

  1. cd node_

/canvas安装node-canvas;node-gyp

  1. ~/pkg并将.so文件(~/canvas/lib/*.so) cp到那里,使用-L将pkg目录解除对本地lambda文件夹的引用,可能会将文件放在正确的位置。(根目录中的画布,node_.so/canvas和其他库)。你可能想重新整理一下。
票数 1
EN

Stack Overflow用户

发布于 2016-08-04 22:30:24

这是一个gulp插件,它可以上传你的文件,以及为aws lambda专门构建的node-canvas及其依赖二进制文件。

NPM Package

代码语言:javascript
复制
'use strict';
//This is a sample gulp file that can be used. 
//npm install --save gulp gulp-zip gulp-awslambda 
const gulp   = require('gulp');
const zip    = require('gulp-zip');
const path   = require('path');
const lambda = require('gulp-awslambda');
const aws_lambda_node_canvas = require('./');

let runtime = 'nodejs4.3' // nodejs or nodejs4.3 

const lambda_params  = {
    FunctionName: 'NodeCanvas', /* Lambda function name */
    Description: 'Node canvas function in aws lambda', //Description for your lambda function 
    Handler: 'main.lambda_handler', //Assuming you will provide main.py file with a function called handler. 
    MemorySize: 128,
    Runtime: runtime,
    Role : 'ROLE_STRING',//eg:'arn:aws:iam::[Account]:role/lambda_basic_execution' 
    Timeout: 50
};

var opts = {
    region : 'ap-southeast-2'
}

gulp.task('default', () => {
    return gulp.src(['main.js', '!node_modules/**/*','!dist/**/*','!node_modules/aws-lambda-node-canvas/**/*']) //Your src files to bundle into aws lambda 
        .pipe(aws_lambda_node_canvas({runtime : runtime})) //Adds all the required files needed to run node-canvas in aws lambda 
        .pipe(zip('archive.zip'))
        .pipe(lambda(lambda_params, opts))
        .pipe(gulp.dest('dist')); //Also place the uploaded file 
});
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33929870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档