Aller au contenu principal

Référence de la ligne de commande

loch-lambda-runtime [run] [flags] -- <command> [args...]
loch-lambda-runtime [run] [flags] <handler> (= /lambda-entrypoint.sh <handler>)
loch-lambda-runtime health [flags]
loch-lambda-runtime invoke [flags] [--timeout <s>] [--log-tail] [--watch-stdin] < event.json
loch-lambda-runtime version

-h affiche l'usage et toutes les options. Les options LOCH_RUNTIME_* (--queue-size, …) sont listées dans la référence de configuration ; health et invoke les acceptent aussi, pour trouver les adresses et les limites.

run​

La sous-commande par défaut : elle exécute la fonction et sert les API. C'est le point d'entrée du conteneur.

FormeLance
<handler>/lambda-entrypoint.sh <handler> (ou LOCH_RUNTIME_BOOTSTRAP). Un seul argument
-- <command> [args...]Cette commande, par exemple l'ENTRYPOINT et le CMD de l'image
loch-lambda-runtime --queue-size 32 index.handler

Écrivez run explicitement si le handler s'appelle littéralement health, invoke ou version. Codes de sortie : 0 après un arrêt propre (SIGTERM, SIGINT), 2 pour une ligne de commande ou une configuration invalide.

health​

Interroge l'écoute de santé sur la loopback. Affiche le document de santé ; renvoie 0 quand la fonction est prête, 1 sinon. Aucun identifiant nécessaire.

healthcheck:
test: ["CMD", "/loch/lambda-runtime", "health"]

Utilisez uniquement cette forme exec, jamais CMD-SHELL.

invoke​

Lit un événement sur stdin (6 Mio au plus, en 10 s maximum), invoque la fonction par la loopback sans identifiant, et affiche une enveloppe JSON sur stdout.

OptionDescription
--timeout <s>Échéance de l'appel complet, attente en file comprise. Par défaut : timeout de la fonction + LOCH_RUNTIME_QUEUE_TIMEOUT + 5 s
--log-tailRemplit logTail avec les 4 derniers Ko de logs de l'invocation
--watch-stdinL'événement est la première valeur JSON sur stdin, terminée par un saut de ligne ; la fermeture de stdin ensuite signifie que l'appelant est parti
echo '{"hello":"world"}' | docker exec -i fn /loch/lambda-runtime invoke --log-tail
Champ de l'enveloppeContenu
statusCodeStatut HTTP de l'API Invoke
functionErrorUnhandled en cas d'erreur de la fonction, vide sinon
requestIdIdentifiant de requête de l'invocation
durationMsDurée de l'appel
payloadCorps de la réponse, en base64
logTailLogs, en base64 ; vide s'ils ne sont pas demandés

Codes de sortie : 0 livré (quel que soit le résultat de la fonction), 1 erreur de transport, échéance dépassée ou appelant parti, 2 événement inutilisable.

Docker ne peut pas tuer un processus docker exec et garde sa sortie stdout ouverte quand le client s'en va, mais ferme son stdin. Avec --watch-stdin, gardez stdin ouvert jusqu'au résultat : invoke se termine en moins d'une seconde après sa fermeture.

version​

Affiche la version du binaire.

docker exec fn /loch/lambda-runtime version

« AWS » et « AWS Lambda » sont des marques d'Amazon.com, Inc. ou de ses sociétés affiliées. Ce projet n'est ni affilié à Amazon ni approuvé par Amazon. Il implémente les API Runtime et Invoke d'AWS Lambda, documentées publiquement, et ne contient aucun code de l'AWS Lambda Runtime Interface Emulator.