You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Git推送至Bitbucket后自动部署静态网站到AWS S3

实现Bitbucket代码推送自动部署到AWS S3静态网站

我之前帮团队配置过一模一样的流程,给你梳理下完整的配置步骤,照着来就能搞定:

1. 准备AWS权限(最小化原则)

首先得给Bitbucket Pipelines分配一个能操作目标S3桶的权限,推荐用IAM用户(别用root账号):

  • 登录AWS控制台,创建一个新IAM用户,比如叫bitbucket-s3-deployer
  • 给这个用户附加自定义权限策略,只开放必要的S3操作权限,示例策略如下:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:DeleteObject",
        "s3:ListBucket"
      ],
      "Resource": [
        "arn:aws:s3:::你的存储桶名称",
        "arn:aws:s3:::你的存储桶名称/*"
      ]
    }
  ]
}
  • 生成该用户的Access Key ID和Secret Access Key,保存好,后面要用到。

2. 配置Bitbucket仓库变量

进入你的Bitbucket仓库,找到Settings > Pipelines > Repository variables,添加两个加密变量:

  • AWS_ACCESS_KEY_ID:填入刚才生成的IAM用户Access Key
  • AWS_SECRET_ACCESS_KEY:填入对应的Secret Access Key,记得勾选Secured选项加密存储

3. 编写Bitbucket Pipelines配置文件

在代码仓库根目录创建bitbucket-pipelines.yml文件,内容可参考下面的模板(根据你的静态网站情况调整):

image: python:3.9

pipelines:
  default:
    - step:
        name: 自动部署到S3静态网站
        script:
          # 安装AWS CLI工具
          - pip install awscli
          # 同步本地代码到S3,--delete会删除S3上本地已不存在的文件,按需开启
          - aws s3 sync ./ s3://你的存储桶名称 --delete --exclude ".git/*" --exclude "bitbucket-pipelines.yml"

额外说明:

如果你的静态网站需要构建(比如Vue/React项目生成dist目录),可以在同步前加构建步骤,比如:

script:
  - npm install
  - npm run build
  - pip install awscli
  - aws s3 sync ./dist/ s3://你的存储桶名称 --delete --exclude ".git/*"

4. 开启Bitbucket Pipelines功能

回到Bitbucket仓库的Settings > Pipelines,开启Pipelines开关。之后每次推送代码到仓库,都会自动触发部署流程。

验证部署

推送一次测试代码到Bitbucket,然后查看仓库的Pipelines标签页,确认流程执行成功。之后访问你的S3静态网站URL,就能看到最新的内容了。

如果遇到权限报错,先检查IAM用户的策略是否正确,或者Bitbucket的变量有没有填错;如果同步内容不全,看看--exclude规则是不是误排除了需要上传的文件。

内容的提问来源于stack exchange,提问作者Huang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 06:57:18