gpt4 book ai didi

amazon-web-services - 使用无服务器框架时如何在aws lambda函数中打包可执行文件?

转载 作者:行者123 更新时间:2023-12-04 08:02:11 25 4
gpt4 key购买 nike

我需要上传一个可执行文件(准确地说是 wkhtmltopdf)以及我在 aws lambda 中的函数代码。我正在使用无服务器框架。我尝试了不同的方法,但未上传 exe。当通过 aws 仪表板压缩和上传代码时,该功能运行良好。

下面是需要上传的函数的目录结构

节点模块索引.jswkhtmltopdf

这是我的 serverless.yml

service: consult-payment-api

frameworkVersion: ">=1.1.0 <2.0.0"

package:
individually: true

provider:
name: aws
region: us-west-2
runtime: nodejs8.10
stage: dev
timeout: 300

functions:

UserPackageCharge:
handler: payment/module/chargePackage.create
package:
include:
- packages/wkhtmltopdf
events:
- http:
path: payment/module/package
method: post
cors:
origin: '*'
headers:
- Content-Type
- X-Amz-Date
- Authorization
- X-Api-Key
- X-Amz-Security-Token
- X-Amz-User-Agent
- My-Custom-Header

这是我的 index.js(处理程序)

var wkhtmltopdf = require('wkhtmltopdf');
var MemoryStream = require('memorystream');

process.env['PATH'] = process.env['PATH'] + ':' + process.env['LAMBDA_TASK_ROOT'];

exports.handler = function(event, context) {
var memStream = new MemoryStream();
var html_utf8 = new Buffer(event.html_base64, 'base64').toString('utf8');
wkhtmltopdf(html_utf8, event.options, function(code, signal) { context.done(null, { pdf_base64: memStream.read().toString('base64') }); }).pipe(memStream);
};

但我仍然收到错误“错误:/bin/bash:wkhtmltopdf:找不到命令”如何让它在无服务器中工作?

最佳答案

我确实得到了一个可用的版本。

这是我做的:

1) 创建一个 package.json 并添加:

“依赖”:{
"wkhtmltopdf": "^0.3.4",
“内存流”:“^0.3.1”
},

2) 运行 ndm 安装

3) 在目录中添加了WKhtmltopdf:
enter image description here

4) 在serverless.yml中添加了这个
包裹:
包括:
- wkhtmltopdf

5) 在 lambda 中添加:
var wkhtmltopdf = require('wkhtmltopdf');
var MemoryStream = require('memorystream');


就是这样。希望对您有所帮助。

关于amazon-web-services - 使用无服务器框架时如何在aws lambda函数中打包可执行文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51964517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com