Я пробую супер простой тест с лямбда-AWS для функций цепочки и любых недостатков к нему.
Я хочу использовать их более сложно (оптимизацияизображения как можно быстрее для гигантской корзины на S3)
Итак, я сказал себе: давайте сначала попробуем получить аргументы из первой функции во вторую и так далее, прежде чем я сойду с ума.
Также я видел, как люди рекомендуют использовать пошаговые функции, поэтому просто стараемся избегать этого, если это действительно не нужно.
Так, как говорится в заголовке , Я не могу получить вторую функцию, которая вызывается для распечатки материала , я бы хотел, чтобы она использовалась для отладки и задавалась вопросом, есть ли способ заставить ее работать?
Вот мой код:
'use strict';
var aws = require('aws-sdk')
module.exports.hello = (event, context, callback) => {
var lambda = new aws.Lambda()
var testPayload = ['blue', 'green', 'red']
var opts = {
FunctionName: 'lambda-chaining-dev-ciao',
Payload: JSON.stringify(testPayload)
}
lambda.invoke(opts, function (err, data) {
if (err) {
console.log('Error : ', err)
callback(err, null)
} else if (data) {
console.log('data', data)
console.log('\n')
const response = {
statusCode: 200,
body: JSON.parse(data.Payload)
}
callback(null, response)
}
})
}
module.exports.ciao = (event, context, callback) => {
console.log("I will never be logged when invoked")
callback(null,{ message: 'this is a test'})
}
serverless.yml
service: lambda-chaining
provider:
name: aws
runtime: nodejs6.10
iamRoleStatements:
- Effect: Allow
Action:
- lambda:InvokeFunction
- lambda:InvokeAsync
- logs:CreateLogGroup
- logs:CreateLogStream
- logs:PutLogEvents
Resource: "*"
functions:
hello:
handler: handler.hello
ciao:
handler: handler.ciao
plugins:
- serverless-offline