amazon-web-services - Bitbucket CI/CD 管道 - 使用 Elastic Beanstalk 部署到 AWS

标签 amazon-web-services asp.net-core bitbucket amazon-elastic-beanstalk bitbucket-pipelines

我正在尝试使用 bitbucker CI/CD 管道在 aws elastic beanstalk 上部署 web api。以下是相同的配置。

image: microsoft/dotnet:sdk

pipelines:
  default:
    - step:
        caches:
          - dotnetcore
        deployment: myapi-test1
        script: # Modify the comma`nds below to build your repository.
          - pipe: atlassian/aws-elasticbeanstalk-deploy:0.5.4
            variables:
              AWS_ACCESS_KEY_ID: '<access_key>'
              AWS_SECRET_ACCESS_KEY: '<secret_key>'
              AWS_DEFAULT_REGION: 'us-east-1'
              APPLICATION_NAME: 'myapi'
              ENVIRONMENT_NAME: 'test'
              ZIP_FILE: 'https://applicationxyz.s3.amazonaws.com/applicationxyz.zip'
              S3_BUCKET: 'myapplication' # Optional.
              # VERSION_LABEL: '<string>' # Optional.
              # DESCRIPTION: '<string>' # Optional.
              # WAIT: '<boolean>' # Optional.
              # WAIT_INTERVAL: '<integer>' # Optional.
              # COMMAND: '<string>' # Optional.
              # DEBUG: '<boolean>' # Optional.

但是,我遇到了 zip 文件的以下错误。

INFO: The application source bundle doesn't have a known file extension (zip, jar or war). This might cause some issues. INFO: Uploading to s3 bucket: myapplication. The user-provided path https://applicationxyz.s3.amazonaws.com/applicationxyz.zip does not exist.

我不确定为什么会收到此错误。在此之前,我们已经在 elastic beanstalk 上手动部署了 web api,因此几乎没有可用的 zip 文件。所以,我什至尝试使用那些,问题仍然没有解决。

在此感谢任何帮助!

编辑 1: 更新了 bitbucket-pipelines.yml 文件

image: atlassian/default-image:2

pipelines:
  default:
    - step:
        name: "Build and Test"
        script:
          - echo "Everything is awesome!"
          - apt-get update
          - apt-get install -y zip
          - zip -j application.zip MyApplication.WebAPI/*
          - pipe: atlassian/aws-elasticbeanstalk-deploy:0.2.3
            variables:
              AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
              AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
              AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
              APPLICATION_NAME: $APPLICATION_NAME
              COMMAND: 'upload-only'
              ZIP_FILE: 'application.zip'
              S3_BUCKET: 'bitbucketcicd'
              VERSION_LABEL: 'deployApi-$BITBUCKET_BUILD_NUMBER-multiple'
    - step:
        name: "Deploy to Test"
        deployment: test
        script:
        - echo "Deployment!"
        - pipe: atlassian/aws-elasticbeanstalk-deploy:0.2.3
          variables:
            AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
            AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
            AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
            APPLICATION_NAME: $APPLICATION_NAME
            COMMAND: 'deploy-only'
            VERSION_LABEL: 'deployApi-$BITBUCKET_BUILD_NUMBER-multiple'
            ENVIRONMENT_NAME: $ENVIRONMENT_NAME
            WAIT: 'true'

最佳答案

您需要在第一步中定义工件并将它们传递给下一步。

image: atlassian/default-image:2

pipelines:
  default:
    - step:
        name: "Build and Test"
        script:
          - echo "Everything is awesome!"
          - apt-get update
          - apt-get install -y zip
          - zip -j application.zip MyApplication.WebAPI/*
          - pipe: atlassian/aws-elasticbeanstalk-deploy:0.2.3
            variables:
              AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
              AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
              AWS_DEFAULT_REGION: $AWS_DEFAULT_REGION
              APPLICATION_NAME: $APPLICATION_NAME
              COMMAND: 'upload-only'
              ZIP_FILE: 'application.zip'
              S3_BUCKET: 'bitbucketcicd'
              VERSION_LABEL: 'deployApi-$BITBUCKET_BUILD_NUMBER-multiple'
 # Define an artifact to pass the zip file to the next step
        artifacts: 
          - application.zip

关于amazon-web-services - Bitbucket CI/CD 管道 - 使用 Elastic Beanstalk 部署到 AWS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59395881/

相关文章:

amazon-web-services - 如何在 AWS SAM Cloud-Formation 中使用 Route53 设置自定义域名

asp.net-mvc - 无法在 Asp.net core Action 中取消任务

authentication - 无法安装 Sourcetree,因为 oAuth 重定向页面未在端口 34106 的本地主机中加载

php - 是否可以使用 Composer 的存档功能在本地压缩项目?

logging - ASP.Net Core 2.0 和日志记录

Git 正在读取我的所有计算机文件,而不仅仅是一个文件夹。如何将 git 指向不同的文件夹?

python - 博托服务器错误 : 400 Bad Request: Mail is not sending

amazon-web-services - 用于查询 CloudWatch 日志组并从结果中提取信息的 AWS 策略操作

java - 如何记录堆栈跟踪 aws elastic beanstalk 以快速解决客户错误

.net - 为 ASP.NET Core lambda 函数 serverless.template 文件设置 AWS Authorizer 条目