我已经创建了一个示例演示站点,并尝试使用无服务器部署在IBM Openwhisk平台上进行部署。我收到以下错误消息,无法弄清楚是什么原因引起的。
由于以下错误而无法部署功能(myPackage):PUT https://api.ng.bluemix.net/api/v1/namespaces/_/actions/myPackage?overwrite=true返回了HTTP 500(内部服务器错误)->“响应缺少错误消息。”
我的handler.js代码
const serverless = require("serverless-http");
const hbs = require("hbs");
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
// parse application/json
app.use(bodyParser.json());
app.set("view engine", "hbs");
app.get("/", function(req, res) {
res.status(200).render("index");
});
module.exports.openwhisksauce= serverless(app);
我的serverless.yml代码:
service: openwhisksauce
provider:
name: openwhisk
runtime: nodejs:10.3.0
functions:
app:
handler: handler.openwhisksauce
# The `events` block defines how to trigger the http events
name: "myPackage"
events:
- http: ANY /
- http: 'ANY {proxy+}'
# remember to run npm install to download the provider plugin.
plugins:
- serverless-openwhisk
答案 0 :(得分:0)
有许多问题阻止此工作。
runtime: nodejs:10.3.0
IBM Cloud Functions不支持此运行时。使用nodejs:8
。
- http: ANY /
IBM Cloud Functions API网关不支持ANY
方法。替换为有效的HTTP动词。
https://github.com/dougmoscrop/serverless-http期望在AWS Lambda上运行,并使用AWS特定的运行时和事件属性。这不适用于IBM Cloud Functions。
有一个不同的项目来使Express.js应用程序在IBM Cloud Functions上运行。有关详细信息,请参见此回购...