AWS (Pulumi)
使用 Pulumi 在 AWS 上快速部署 Activepieces
使用 Pulumi 的基础设施即代码(IaC)
Pulumi 是一种类似于 Terraform 或 CloudFormation 的 IaC 解决方案,允许你使用流行的编程语言(例如 TypeScript(我们将使用)、C#、Go 等)来部署和管理基础设施。
从 Pulumi Cloud 部署
如果你已经熟悉 Pulumi Cloud 并将其服务与你的 AWS 账户集成,可以使用下面的按钮一键部署 Activepieces。 该模板将部署 Docker Hub 上提供的最新 Activepieces 镜像。
从本地环境部署
或者,如果你正在使用 S3 存储桶来维护 Pulumi 状态,可以使用以下模板通过几条命令直接从 Docker Hub 搭建和部署 Activepieces:
$ mkdir deploy-activepieces && cd deploy-activepieces
$ pulumi new https://github.com/activepieces/activepieces/tree/main/deploy/pulumi
$ pulumi up
部署内容
该模板设计上具有一定的灵活性,既支持开发环境也支持更高配置的生产环境。 在堆栈配置过程中,你可以选择添加以下任意或全部选项:
- PostgreSQL RDS 实例。选择不使用将使用本地 SQLite3 数据库。
- 单节点 Redis 7 集群。选择不使用将使用内存缓存。
- 带 SSL 的完全限定域名。注意,托管区域必须在 Route 53 中预先配置好。 选择不使用将依赖应用程序负载均衡器的 URL 通过标准 HTTP 来访问你的 Activepieces 部署。
有关所有当前可用的配置选项的完整列表,请查看 GitHub 上的 Activepieces Pulumi 模板文件。
首次设置 Pulumi
如果你不熟悉 Pulumi,请继续阅读以下内容,了解如何设置本地开发环境以部署 Activepieces。
前置条件
- 确保已安装 Node 和 Pulumi。
- 安装并配置 AWS CLI。
- 安装并配置 Pulumi。
- 创建一个 S3 存储桶,用于维护我们将为 Activepieces 部署配置的各种服务的状态:
aws s3api create-bucket --bucket pulumi-state --region us-east-1
- 登录到 Pulumi 后端:
pulumi login s3://pulumi-state?region=us-east-1
- 接下来,我们将使用 Activepieces Pulumi 部署模板创建一个新项目、该项目中的一个堆栈,然后启动部署:
$ mkdir deploy-activepieces && cd deploy-activepieces
$ pulumi new https://github.com/activepieces/activepieces/tree/main/deploy/pulumi
此步骤将提示你创建堆栈并填写一系列配置选项,例如是否预配 PostgreSQL RDS 实例或使用 SQLite3。
- 现在只需启动部署:
pulumi up
- 然后在提示时选择
yes。部署完成后,你应该会看到如下所示的 Pulumi 输出变量:
_: {
activePiecesUrl: "http://<alb name & id>.us-east-1.elb.amazonaws.com"
activepiecesEnv: [
. . . .
]
}
这里值得关注的配置值是 activePiecesUrl,它是我们 Activepieces 部署的 URL。
如果你在堆栈配置期间选择了添加完全限定域名,该域名将显示在此处。
否则,你将看到应用程序负载均衡器的 URL。就是这样。
恭喜!你已成功将 Activepieces 部署到 AWS。
部署本地构建的 Activepieces Docker 镜像
如果你想部署本地构建的镜像而不是使用官方的 Docker Hub 镜像,请继续阅读。
- 在本地克隆 Activepieces 仓库:
git clone https://github.com/activepieces/activepieces
- 进入
deploy/pulumi文件夹并安装必要的 npm 包:
cd deploy/pulumi && npm i
- 此文件夹中已经有两个 Pulumi 堆栈配置文件可用:
Pulumi.activepieces-dev.yaml和Pulumi.activepieces-prod.yaml。 这些文件已经包含创建环境所需的所有配置。请随意查看并根据需要编辑这些值。 接下来,我们创建一个使用现有Pulumi.activepieces-dev.yaml文件的开发堆栈并启动部署。
pulumi stack init activepieces-dev && pulumi up
- 在继续之前,你应该会在终端中看到将要预配的所有服务的预览。
选择
yes后,将基于解决方案根目录中的Dockerfile构建一个新镜像(确保 Docker Desktop 正在运行),然后推送到新的 ECR,同时为该堆栈预配所有其他 AWS 服务。
恭喜!你已成功使用本地构建的 Docker 镜像将 Activepieces 部署到 AWS。
自定义部署
与任何 IaC 一样,所有当前的配置选项以及与预配服务相关的底层细节都是完全可自定义的。
例如,如果你希望 VPC 有三个可用区而不是两个、使用旧版本的 Redis 或为 PostgreSQL 添加一些额外的安全组规则,你可以在 deploy 文件夹中的 index.ts 文件中更新所有这些内容。
或者,你可能仍然希望部署官方的 Activepieces Docker 镜像而不是本地构建,但想更改某些服务。只需将堆栈文件中的 deployLocalBuild 配置选项设置为 false,然后对 index.ts 文件进行任何所需的更改即可。
强烈建议在进行操作之前查看 Pulumi 文档。