ibm-cloud - 部署功能失败
问题描述
我创建了一个示例演示站点,并尝试在 IBM Openwhisk 平台上使用无服务器部署进行部署。我收到以下错误消息,但无法找出导致问题的原因。
由于错误而无法部署函数 (myPackage):PUT https://api.ng.bluemix.net/api/v1/namespaces/_/actions/myPackage?overwrite=true Returned HTTP 500 (Internal Server Error) --> “响应缺少错误消息。”
我的 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
解决方案
有许多问题阻止了这项工作。
runtime: nodejs:10.3.0
IBM Cloud Functions 不支持此运行时。使用nodejs:8
.- http: ANY /
IBM Cloud Functions API Gateway 不支持该ANY
方法。替换为有效的 HTTP 动词。https://github.com/dougmoscrop/serverless-http期望在 AWS Lambda 上运行并使用 AWS 特定的运行时和事件属性。这不适用于 IBM Cloud Functions。
有一个不同的项目可以让 Express.js 应用程序在 IBM Cloud Functions 上运行。有关详细信息,请参阅此 repo...
推荐阅读
- node.js - 登录后无法获取 jwt 令牌
- mongodb - MongoDB oplog 包含许多 Noop
- postgresql - postgres 10 对等身份验证失败
- c# - 在反序列化 JSON 文件时不使用完整路径
- matlab - 如何在 MATLAB 中实现人口普查变换
- f# - 如何在 \n 处反转字符串列表中的每个字符串?
- amazon-web-services - 启用 CDN 到 S3 存储桶而不授予 AWS 中的公共访问权限
- ruby-on-rails - 创建 ruby/bin/rails 文件的代码模式在哪里
- java - Spring JPA 中的 PostgreSQL 数组运算符
- android - 使用协程执行的 Android kotlin 任务