Für die Lambda-Teil
Sie event.json
Datei verwenden können:
{
"principalId": "1234",
"inputVar": "foo"
}
und dann sls function run
laufen.
Nach docs, wenn keine Stufe angeben, wird die Funktion lokal ausgeführt, wenn Sie eine Stufe angeben, wird die Funktion den implementierten Code in der entsprechenden Phase ausführen. Aber die docs veraltet scheint, müssen Sie auch wie -d
Flagge weitergeben müssen:
sls function run myFunction -s dev -d
Dieser Befehl wird Ihr Einsatz Lambda-Funktion aufrufen, mit den Parametern von Ihrem lokalen event.json
Datei
Hier ist die source code für Funktion ausführen Optionen .
Für Apig Integration
Es gibt einige Beispiele in documentation.
Wenn Sie keine Vorlagen verwenden möchten, können Sie den zugehörigen Code einfach in Ihre s-function.json
innerhalb der Endpunktbeschreibung einfügen.
"endpoints": [
...
"requestTemplates": {
"application/json": {
"principalId": "$context.authorizer.principalId",
"apiKey": "$context.identity.apiKey",
"inputVar": "$input.json('inputVar')"
}
}
...
]
Syntax ist wie beschrieben in API Gateway Accessing the $input Variable doc.
Danke Alper, es funktioniert jetzt für mich. Während du die Option -d behandelst, frage ich mich, ob es sowieso möglich ist, die Lambda-Funktion und Endpunkte (API-Gateway) zu Amazon ohne Deployment hochzuladen (ich meine, ohne eine neue Version zu erstellen), manchmal möchte ich nur testen, ob es auf Amazon funktioniert . –
afaik nein. Auto-Versionierung wird immer ausgelöst. aber Sie können Prune-Plugin verwenden, um alte Versionen zu löschen. –
Sie können eine Funktion '$ serverless deploy function -f Funktionsname' bereitstellen. Es ist viel schneller als die Bereitstellung des gesamten Projekts "$ serverless deploy". Es überspringt das CloudFront-Update. Hier ist ein Beispielcode - [http://serverless-stack.com/chapters/deploy-the-apis.html](http://serverless-stack.com/chapters/deploy-the-apis.html?utm_source= stackoverflow.com) – Frank