AWS Codebuild работает сценарий оболочки
У меня есть Lambda Project, основанный на.NetCore, который я хочу построить с помощью AWS CodeBuild.
У меня есть CodeCommit Repo для исходного кода, и я использую Lambda для запуска сборки всякий раз, когда происходит фиксация в моей основной ветке. Я не хочу использовать CodePipeline. В сборке кода я буду делать следующее:
- строить
- пакет
- Загрузить пакет на S3
- Выполните несколько команд CLI AWS для обновления лямбда-функции
Теперь у меня есть пара сценариев оболочки, которые я хочу выполнить как часть этого, эти сценарии прекрасно работают для меня локально, и именно поэтому я хочу использовать их с CodeBuild.
Я использую образ ядра.net на основе Ubuntu из AWS для своей сборки и в своем проекте сборки кода, я обновил спецификацию сборки, чтобы сделать - chmod +x *.sh
в pre_build и внес другие изменения в мой buildspec.yml в соответствии с этой веткой: https://forums.aws.amazon.com/thread.jspa?messageID=760031 а также просмотрел следующий пост в блоге, пытаясь сделать нечто подобное - http://openbedrock.blogspot.in/2017/03/aws-codebuild-howto.html
Это один из таких сценариев, который я хочу выполнить:
#!/bin/bash
set -e
ZIPFILENAME=""
usage()
{
echo "build and package lambda project"
echo "./build-package.sh "
echo "Get this help message : -h --help "
echo "Required Parameters: "
echo "--zip-filename=<ZIP_FILE_NAME>"
echo ""
}
if [ $# -eq 0 ]; then
usage
exit 1
fi
while [ "$1" != "" ]; do
PARAM=`echo $1 | awk -F= '{print $1}'`
VALUE=`echo $1 | awk -F= '{print $2}'`
case $PARAM in
-h | --help)
usage
exit
;;
--zip-filename)
ZIPFILENAME=$VALUE
;;
*)
echo "ERROR: unknown parameter \"$PARAM\""
usage
exit 1
;;
esac
shift
done
Теперь я получаю сообщение об ошибке при попытке выполнить команду оболочки в Code Build: Выполнение команды:
sh lambda-deployer.sh --existing-lambda=n --update-lambda=y
lamdbda-deployer.sh: 5: lambda-deployer.sh: Syntax error: "(" unexpected