/ / Przesyłanie funkcji python do aws lambda - python, git, bash, aws-lambda

Przesyłanie funkcji Pythona do aws lambda - python, git, bash, aws-lambda

Opracowałem dwie funkcje pythonów lambda AWS. Ponieważ wszyscy potrzebujemy kontroli źródła, zapisuję mój projekt w git. Pytanie brzmi, jaki jest najlepszy sposób aktualizacji AWS lambda z aktualizacjami z git. AFAIK obecnie jedynym sposobem jest użycie aws cli z funkcją update-function-code. Napisałem następujące bash, aby ręcznie zaktualizować kod:

#!/bin/bash
command -v aws >/dev/null 2>&1 || { echo >&2 "This command requires aws but it"s not installed or not in the path.  Aborting."; exit 1; }
bold=$(tput bold)
normal=$(tput sgr0)

if [ "$#" -ne 2 -a "$#" -ne 1 ]; then
echo "usage: $0 <code file path> [lambda function name if not same]"
exit 1
fi

if ! [ -e $1 ]; then
echo "File $1 does not exist"
exit 1
fi

ZIPFILE="lamzip.zip"
LAMBDA_FUNC="lambda_function.py"

if [ "$#" -ne 2 ]; then
AWS_LAMBDA_NAME=$(basename $1)
AWS_LAMBDA_NAME="${AWS_LAMBDA_NAME%.*}"
else
AWS_LAMBDA_NAME=$2
fi

echo "Will upload your code file to aws lamda ${bold}$AWS_LAMBDA_NAME${normal}"

cp -f $1 /tmp/$LAMBDA_FUNC
rm -f /tmp/$ZIPFILE
zip -j /tmp/$ZIPFILE  /tmp/$LAMBDA_FUNC

CMD="aws lambda update-function-code --function-name $AWS_LAMBDA_NAME --zip-file fileb:///tmp/$ZIPFILE --publish"
echo executing: $CMD
$CMD

exit 0

Czy miałbym jenkinsa lub podobnego, mógłbym zautomatyzować ten skrypt.

Ale czy jest lepszy sposób?

EDYTOWAĆ 28/1/16 zaktualizowany do skryptu, którego teraz używam, zakłada, że ​​nazwa skryptu jest nazwą metody w aws, chyba że podano inny parametr

Odpowiedzi:

0 dla odpowiedzi № 1

Używanie serwera budowania jest normalnym sposobem wdrażania funkcji lambda AWS, jest to naprawdę tak proste, jak to robisz. Stosujemy bardzo podobne podejście i wszystko idzie dobrze.