我想从serverless-offline内部的另一个lambda调用一个lambda。我想制作一个无服务器的离线Web应用程序。但是我遇到了这个错误:
{UnknownError:不支持的媒体类型 在Object.extractError(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ protocol \ json.js:51:27) 在Request.extractError(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ protocol \ rest_json.js:55:8) 在Request.callListeners(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ sequential_executor.js:106:20) 在Request.emit(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ sequential_executor.js:78:10) 在Request.emit(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ request.js:683:14) 在Request.transition(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ request.js:22:10) 在acceptorStateMachine.runTo(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ state_machine.js:14:12) 在C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ state_machine.js:26:10 应要求。 (C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ request.js:38:9) 应要求。 (C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ request.js:685:12) 在Request.callListeners(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ sequential_executor.js:116:18) 在Request.emit(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ sequential_executor.js:78:10) 在Request.emit(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ request.js:683:14) 在Request.transition(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ request.js:22:10) 在acceptorStateMachine.runTo(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ state_machine.js:14:12) 在C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ state_machine.js:26:10 应要求。 (C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ request.js:38:9) 应要求。 (C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ request.js:685:12) 在Request.callListeners(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ sequential_executor.js:116:18) 在callNextListener(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ sequential_executor.js:96:12) 在IncomingMessage.onEnd(C:\ Users \ gourabkonar \ Desktop \ sls-demo \ node_modules \ aws-sdk \ lib \ event_listeners.js:307:13) 在IncomingMessage.emit(events.js:203:15) 在IncomingMessage.EventEmitter.emit(domain.js:448:20) 在endReadableNT(_stream_visible.js:1129:12) 在process._tickCallback(内部/进程/next_tick.js:63:19) 消息:“不支持的媒体类型”, 代码:“ UnknownError”, 时间:2019-11-06T17:02:27.641Z, requestId:未定义, statusCode:415, 可重试:错误, retryDelay:6.643720301281952}
sls-api-dev-create
const jobs=[
{ id: 1,title: 'NodeJS Developer'},{id: 2,title:'Angular Developer'}
];
var AWS = require('aws-sdk');
AWS.config.region = 'ap-southeast-2';
let lambda = new AWS.Lambda({
region: 'ap-south-1',endpoint: 'http://localhost:3000/jobs'
})
module.exports.handler=async(evt,ctx)=>{
console.log(evt.body);
jobs.push(JSON.parse(evt.body));
lambda.invoke({
FunctionName: 'sls-api-dev-hello',invocationType: 'Event',Payload:null
},function(err,data){
console.log('No error');
if(!err)
console.log(data);
else
console.log(err);
})
//console.log(response);
return {
statusCode :200,body:JSON.stringify({
jobs
})
}
}
sls-api-dev-hello
'use strict';
module.exports.hello = async event => {
return {
statusCode: 200,body: JSON.stringify(
{
message: 'Welcome to Serverless',input: event,},null,2
),};
// Use this code if you don't use the http event with the LAMbda-Proxy integration
// return { message: 'Go Serverless v1.0! Your function executed successfully!',event };
};
serverless.yml
service: sls-api
provider:
name: aws
runtime: nodejs10.x
region: ap-south-1
iamRoleStatements:
- Effect: Allow
action:
- lambda: InvokeFunction
- lambda: InvokeAysnc
Resource: "*"
plugins:
- serverless-offline
- serverless-offline-lambda
functions:
hello:
handler: handler.hello
jobs:
handler: src/jobs/handler.handler
listJobs:
handler: src/jobs/list.handler
events:
- http:
method: GET
path: /jobs
createJobs:
handler: src/jobs/create.handler
environment:
SOME_VARIABLE: http://localhost:3000/jobs
events:
- http:
method: POST
path: /jobs
getJob:
handler: src/jobs/findOne.handler
events:
- http:
method: GET
path: /jobs/{id}
request:
parameters:
id: true
请帮助,任何帮助都将非常有用,因为我是无服务器新手。谢谢。