AWS 无服务器功能未响应图像

2023-12-20

我正在尝试让 AWS API Gateway 使用图像进行响应。我的无服务器 Lambda 代码如下

const express = require('express');
const serverless = require('serverless-http');
const bodyParser = require('body-parser');
const request = require('request');
const fetch = require('node-fetch')
var Jimp = require('jimp');
const app = express()
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: true }))

app.get('/image/:id', async(req, res) => {
    const id = req.params.id;

    var imgUrl = 'https://developer.salesforce.com/forums/profilephoto/729F00000005O41/T';
    let options = {};

    const image = await Jimp.read(imgUrl);
    image.getBuffer(Jimp.MIME_JPEG, (err, buffer) => {
        res.set('content-type', 'image/jpeg');
        res.send(buffer.toString('base64'));
    });
});
// wrap express app instance with serverless http function
module.exports.handler = serverless(app)

无服务器.yml


provider:
  name: aws
  runtime: nodejs8.10
  stage: dev
  region: us-east-1
  memorySize: 512

custom:
  apigwBinary:
    types:           #list of mime-types
      - 'image/jpg'
      - 'image/jpeg'
      - 'image/png'
functions:
  avatarFunc:
    handler: index.handler
    events:
      - http:
          path: image/{id}
          method: get
          contentHandling: CONVERT_TO_BINARY

plugins:
  - serverless-offline
  - serverless-apigw-binary

The image that is coming back is a black box. enter image description here


好的。我刚刚经历过这个并想分享解决方案。该问题与 Serverless 和 AWS 之间的不匹配有关。所以我们要把它们放在同一页面上。

首先->无服务器配置

const binaryMimeTypes = {binary: [
  'image/*',
  'image/jpeg',
  'image/png',
  'image/svg+xml',
]};

module.exports.server = sls(app, binaryMimeTypes) 

这将 Serverless 配置为将关联的 Mime 类型作为 Base64 提供服务。

第二-> AWS 配置

在 AWS API 中,选择网关,然后选择设置。向下滚动并添加以下二进制类型:

就是这样!现在应该可以了!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS 无服务器功能未响应图像 的相关文章

  • 从项目中的任何位置获取socket.io名称空间

    在我的 REST 调用和一些数据库插入之后 我想通过 socket io 向前端发出一个新的通知 如下所示 socket broadcast emit send notification notification 由于我执行此操作的函数是通
  • Node + now.js + 模型-视图-控制-模式

    我正在使用基于 MVC 模式 模板和 PHP 类 的论坛软件 页面如下所示 domain com index php page Test 我想使用 Node 和 now js 在一个页面 domain com index php page
  • 如何修改实时 Alexa 技能?

    我需要修改我已发布的 Alexa 技能 我熟悉亚马逊在发布技能后自动创建的 开发中 技能版本 我不明白的是如何迭代我的技能 特别是当我需要同时更改交互模型和链接的 Lambda 函数时 例如 我可以创建一个单独的 开发中 Lambda 函数
  • 使用 terraform 更新 KMS 密钥策略

    有谁知道如何让 Terraform 更新现有的 KMS 密钥策略 我已经创建了 KMS 密钥 但我有一个需要使用现有 KMS 密钥的临时 IAM 角色 我希望能够将这个 新 IAM 角色添加到现有的 KMS 密钥策略中 我可以看到使用 AW
  • axios 在发送数据时给我将循环结构转换为 json 错误

    我的代码如下所示 axios post https api sandbox xyz com v1 order new JSON stringify request v1 order new nonce 123462 client order
  • Node.js 找不到模块“mongodb”

    我正在经历我的第一个 Node js 项目 我已经安装了 mongodb 有一个 server js 文件 当我尝试运行它时 出现此错误 module js 340 throw err Error Cannot find module mo
  • 缩短node.js和mongoose中的ObjectId

    我的网址目前如下所示 http www sitename com watch companyId 507f1f77bcf86cd799439011 employeeId 507f191e810c19729de860ea someOtherI
  • 如何使用 jest 测试 unhandledRejection / uncaughtException 处理程序

    我有处理程序unhandledRejections and uncaughtExceptions bin js unhandledRejection uncaughtException forEach event gt process on
  • Windows - 启动时自动启动特定应用程序

    在 Windows 操作系统中开发信息亭应用程序 当机器启动时 必须依次发生 3 件事 Node js 服务器启动 包含 Web 应用程序的浏览器以 kiosk 模式启动 另一个客户端应用程序启动 是否有一个实用程序可以轻松完成此操作 或者
  • 不存在“Access-Control-Allow-Origin”,不允许访问 Origin“null” - Passport-SteamStrategy、节点

    我有一个正在使用 Passport Steam 策略的网站 我的服务器 Node with Express 当前在 localhost 3000 上运行 而我的前端在 localhost 8080 上运行 仅在尝试通过 Steam 授权时
  • 解密签名并验证 JWT

    我知道还有其他库可以让我更轻松地使用 JWT 在 Node js 中 在本例中 我使用 crypto js 以手动方式学习 JWT 以下给了我令牌 var header alg HS256 typ JWT var wordArrayHead
  • 有条件地使用 Node.js 提供两个 React 构建

    我有两个基于设备向客户端提供服务的 React 应用程序 我使用 Node js 和 Express 来实现这一点 我借了static资产处理部分来自这个问题在这里 https stackoverflow com questions 644
  • 在不调用“then”的情况下解决 Promise

    我有这段代码 它是我为一个名为 Poolio 的 NPM 模块编写的小型 API 的一部分 对于那些支持错误优先回调和承诺的人来说 我遇到的问题似乎是一个常见问题 我们如何在支持两者的同时保持一致的 API 和 API 的一致返回值 例如
  • Model.find() 在猫鼬中返回空[重复]

    这个问题在这里已经有答案了 我正在使用 mongoose 来列出 mongodb 数据库中集合中的所有数据 从请求中 http localhost 3000 listdoc model Organization 我正在执行以下代码 expo
  • 在 AWS Quicksight 中可视化 DynamoDB 数据

    我正在寻找一个以 AWS 为中心的解决方案 如果可能的话 避免使用第三方的东西 来可视化非常简单的 DynamoDB 表中的数据 我们使用 AWS Quicksight 为客户提供许多其他报告和仪表板 以便在那里提供可视化效果 我非常惊讶地
  • Node.js 中的 Zip 档案

    我想创建一个 zip 存档并将其解压缩到 node js 中 我找不到任何节点实现 node core 内置了 zip 功能 http nodejs org api zlib html http nodejs org api zlib ht
  • 更改 Ubuntu Linux 中文件夹的读/写访问权限

    我想创建一个文件夹并在创建的文件夹中写入一个文件Amazon EBS来自安装在运行 Ubuntu 的 Amazon EC2 上的 Java Servlet 的卷 我已将 EBS 卷安装在 mnt my address 但是Servlet无法
  • nodejs gmail api不支持承诺

    Google 推荐使用承诺 https developers google com api client library javascript features promises 但它的代码示例没有 当我修改代码时 我正在努力使 gmail
  • 无法在 postgres insert 中插入问号

    我正在尝试运行一个简单的 Postgres SQL 插入 insert into Resources values 1 How are you 但插入后的结果是 ID Data 1 How are you 1 我知道 要插入单引号等字符 我
  • Node.js:将 repl 挂接到远程节点服务器

    假设我有一个节点服务器在 mysite com 上运行 有没有办法设置该服务器以便我可以使用节点的repl api http nodejs org docs latest api repl html to securely从我的本地计算机连

随机推荐

  • ExecutorService 按顺序执行任务,但从池中获取线程

    我正在尝试构建一个实现ExecutorService 我们称之为SequentialPooledExecutor 具有以下性质 的所有实例SequentialPooledExecutor共享同一个线程池 调用同一个实例SequentialP
  • 如何对 Bundle 中的 javascript 文件进行版本控制?

    我想将我的 JS 脚本包含在Bundle并且同时version它们以避免浏览器缓存 如果这些脚本已更改 有没有 native 方式与ASP NET MVC 5来完成这个 我找到了一个名为的图书馆Cassette http getcasset
  • 如何使用动态行跨度显示数据库中的数据

    我是 php 编程新手 在使用 php 和 html 显示 mysql 数据库中的数据时遇到一些问题 这是我的桌子 location id location location component id comopnent id locati
  • C 多类型函数

    我想用 C 编写一些函数 但它们必须适用于所有数字类型 int float double 什么是好的做法 在 void 上使用指针 当然还有指向函数的指针 或者为每种类型编写不同的函数 例如 float func float a float
  • pyenv 在执行所述模块时在终端中打印模块

    我已经转向使用pyenv运行 python 时 但问题是当我执行一个模块并且该模块导入其他模块时pyenv经常会打印出一大堆对我来说是胡言乱语的内容 例如 alias py37 pyenv local 3 7 3 python Admins
  • Symfony2 __toString() 错误

    我在将实体保存回给我时遇到此错误 Catchable Fatal Error Method My BusinessBundle Entity Type toString must return a string value in var w
  • 使用rest api在Google Drive中创建新文件夹

    仅当谷歌驱动器不存在时 如何使用 python 在谷歌驱动器中创建新文件夹 我对这个 google API 和 python 完全陌生 我的帐户有一个访问令牌 我想使用它创建文件夹 创建文件夹 import json import requ
  • 当 BOM(字节顺序标记)丢失时,如何才能最好地猜测编码?

    我的程序必须读取使用各种编码的文件 它们可能是 ANSI UTF 8 或 UTF 16 大端或小端 当 BOM 字节顺序标记 存在时 我没有问题 我知道该文件是 UTF 8 还是 UTF 16 BE 或 LE 我想假设当没有 BOM 时该文
  • 英特尔 Fortran 95 编译器是否允许模块数组具有非常量大小?

    我已经下载了 Fortran 90 95 自适应网格细化库 Paramesh http www physics drexel edu olson paramesh doc Users manual amr html 现在我正在尝试编译一个附
  • 如何停止水平滚动?

    我用 html 和 javascript 编写了一个文件 垂直滚动应该存在 但我想停止水平滚动 我怎样才能做到这一点 萨弗拉兹有已经提到过 https stackoverflow com questions 2987261 how to s
  • 如何为 BN_generate_prime 播种 PRNG

    我一直无法找到关于在 openssl bn h 中使用 BN generate prime 生成素数的答案 另外 我如何播种该函数使用的 PRNG 单独的问题但与我的代码相关 我正在编写一个程序来生成 RSA 密钥对 如何检查高位是否设置为
  • Angular UI bootstrap - 在 typeahead-no-results 上显示下拉菜单

    尝试在预输入没有结果时获取下拉菜单 但是下拉菜单不显示 看法 div class dropdown div class form group div div
  • 如何在 ggplot2 / Rmarkdown 中跨选项卡进行分面?

    我知道facet wrap and facet grid用于刻面 对于需要更多空间的更详细的图形 能够轻松地进行分面可能会很有用Rmarkdown 选项卡 https stackoverflow com a 38146093 除了将图形的代
  • 为什么 O(1) != O(log(n)) ?对于 n=[整数,长整型,...]

    例如 假设 n Integer MAX VALUE 或 2 123 那么 O log n 32 和 123 就是一个小整数 不是 O 1 吗 有什么不同 我认为 原因是 O 1 是常数 但 O log n 不是 还有其他想法吗 If n上面
  • 使用 Gradle 将 .ebextensions 添加到 Spring Boot Jar 的简洁方法

    是否有一种干净的方法可以将其他根文件夹添加到使用默认 bootRepackage jar 生成的 Spring Boot Jar 文件中 就我而言 我需要 AWS beanstalk 的 ebextenions 文件夹 我知道我可以破解它
  • 尝试对值进行分组?

    我有一些这样的数据 1 2 3 4 5 9 2 6 3 7 我正在寻找这样的输出 组 ID 和该组的成员 1 1 2 6 2 3 4 7 3 5 9 第一行 因为 1 连接 到 2 而 2 连接到 6 第二行 因为 3 连接到 4 3 连接
  • Java使Proxy Socket多线程化

    我已经构建了一个 java 代理 它可以工作 但只允许 1 个客户端 我知道我需要进行多线程处理 这就是我这样做的原因 因此它会打开新线程 但由于某种原因我无法让它工作 这是我的代理类 public class Proxy private
  • 升级到 Xcode 5.0 后,Xcode 无法使用所选设备运行

    我今天升级到了xcode 5 0 然后我按下播放键在 iOS 模拟器中运行我的项目 这最初是有效的 然后我决定运行分析器 当我这样做时 我收到消息 Xcode cannot run using the selected device Cho
  • 列表理解中的函数 - 是否多次评估[重复]

    这个问题在这里已经有答案了 哪一个是在 python 中进行列表理解的更好方法 就计算时间和 CPU 周期而言 在示例 1 中 值 f r 是在每次迭代中计算还是计算一次并缓存 y x f r for x in xlist c f r y
  • AWS 无服务器功能未响应图像

    我正在尝试让 AWS API Gateway 使用图像进行响应 我的无服务器 Lambda 代码如下 const express require express const serverless require serverless htt