Bitbucket Pipeline将.Net Core API部署到AWS无服务器应用程序模型

时间:2020-06-22 15:34:38

标签: aws-lambda bitbucket bitbucket-pipelines aws-sam

我们是Bitbucket CI / CD管道创建和AWS部署的新手。

我们正尝试使用Bitbucket管道为无服务器应用程序模型将.Net核心(3.1)API构建和部署/发布到AWS Lambda。我们碰到了以下链接,可将其部署到AWS。

https://bitbucket.org/atlassian/aws-sam-deploy/src/master/?_ga=2.18577786.215737733.1592837802-1805179932.1542868670

我们能够完成项目构建和测试,但是AWS Lambda SAM部署无法正常工作。请找到下面的yaml文件

image: mcr.microsoft.com/dotnet/core/sdk:3.1

pipelines:
  default:
    - step:
        caches:
          - dotnetcore
        script: # Modify the commands below to build your repository.
          - export PROJECT_NAME=MyProject
          - export TEST_NAME=MyProject.Tests
          - dotnet restore
          - dotnet build $PROJECT_NAME
          - dotnet test $TEST_NAME
 
    - step:
        name: deploy AWS SAM  
        script:
          - pipe: atlassian/aws-sam-deploy:0.3.4
            variables:
             AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} # Optional if already defined in the context.
             AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} # Optional if already defined in the context.
             COMMAND: 'deploy' 

我认为,我们在“部署AWS SAM”中缺少一些步骤,但是不确定如何提供已发布的库路径或任何其他步骤。我们在项目中没有使用任何docker。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我面临着同样的问题。我找到了一个不是最佳解决方案的解决方案,但是可行。

您可以在管道映像中安装Amazon Lambda Tools,然后调用lambda deploy-serverless。另外,您需要安装一些东西来压缩(压缩)软件包。

“ dotnet lambda deploy-serverless”与具有AWS Toolkit的MS VS 2019相同。

image: mcr.microsoft.com/dotnet/core/sdk:3.1

pipelines:
  default:
    - step:
        caches:
          - dotnetcore
        script: # Modify the commands below to build your repository.
          - apt-get update && apt-get install -y zip
          - dotnet tool install -g Amazon.Lambda.Tools
          - export PATH="$PATH:/root/.dotnet/tools"
          - dotnet lambda deploy-serverless