AWS Codebuild运行shell脚本

时间:2017-11-24 10:13:24

标签: shell amazon-web-services lambda aws-codebuild

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

我有一个CodeCommit Repo for source,我正在使用Lambda来在我的master分支提交时触发构建。我不想使用CodePipeline。 我将按照以下代码构建 -

  1. 构建
  2. 封装
  3. 将包上传到S3
  4. 运行一些AWS CLI命令以更新lambda函数
  5. 现在我有几个shell脚本要作为其中的一部分执行,这些脚本在本地工作正常,这就是我想在CodeBuild中使用它们的原因。

    我正在使用来自AWS的基于Ubuntu的.net核心映像进行构建和我的代码构建项目,我已在pre_build中更新了构建规范 - chmod +x *.sh并对我的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
    

    现在,我在代码生成中尝试执行shell命令时遇到错误: 运行命令:

    sh lambda-deployer.sh --existing-lambda=n --update-lambda=y 
    lamdbda-deployer.sh: 5: lambda-deployer.sh: Syntax error: "(" unexpected
    

0 个答案:

没有答案