AWS Codebuild 运行 shell 脚本

Rav*_*ish 6 shell lambda amazon-web-services aws-codebuild

我有一个基于 .NetCore 的 Lambda 项目,我想使用 AWS CodeBuild 进行构建。

我有一个用于源代码的 CodeCommit Repo,并且每当向我的主分支提交提交时,我都会使用 Lambda 来触发构建。我不想使用 CodePipeline。我将执行以下代码构建 -

  1. 建造
  2. 包裹
  3. 上传包到 S3
  4. 运行一些 AWS CLI 命令来更新 lambda 函数

现在我有几个 shell 脚本要作为其中的一部分执行,这些脚本在我本地运行良好,这就是我想将它们与 CodeBuild 一起使用的原因。

我正在使用来自 AWS 的基于 Ubuntu 的 .net 核心映像进行我的构建和 nn 我的代码构建项目,我已经更新了构建规范 -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
Run Code Online (Sandbox Code Playgroud)

现在,我在代码构建中尝试执行 shell 命令时出错:运行命令:

sh lambda-deployer.sh --existing-lambda=n --update-lambda=y 
lamdbda-deployer.sh: 5: lambda-deployer.sh: Syntax error: "(" unexpected
Run Code Online (Sandbox Code Playgroud)