Files

Heroku Terraform 配置说明

当前状态

由于网络连接问题,无法自动下载 Heroku Terraform provider。以下是解决方案。

方案一:手动下载 Provider推荐

1. 手动下载 Heroku Provider

# 创建插件目录
mkdir -p ~/.terraform.d/plugins/linux_amd64/

# 下载 provider需要网络连接
cd ~/.terraform.d/plugins/linux_amd64/
wget https://github.com/heroku/terraform-provider-heroku/releases/download/v5.3.2/terraform-provider-heroku_5.3.2_linux_amd64.zip

# 解压
unzip terraform-provider-heroku_5.3.2_linux_amd64.zip
rm terraform-provider-heroku_5.3.2_linux_amd64.zip

# 返回项目目录
cd /home/ben/terraform/heroku

# 初始化
terraform init

2. 使用配置文件

# 应用配置
terraform apply -var="heroku_api_key=$(head -1 .env)" -var="heroku_email=$(tail -1 .env)"

方案二:使用 Heroku CLI替代方案

如果 Terraform provider 无法使用,可以直接使用 Heroku CLI

安装 Heroku CLI

# 使用 snap 安装
sudo snap install --classic heroku

# 或使用 npm
npm install -g heroku

登录 Heroku

heroku login

创建应用

# 创建新应用
heroku create my-app

# 查看应用
heroku apps

# 添加 PostgreSQL
heroku addons:create heroku-postgresql:essential-0

# 添加 Redis
heroku addons:create heroku-redis:mini

# 设置环境变量
heroku config:set NODE_ENV=production PORT=8080

# 查看日志
heroku logs --tail

# 部署应用
git push heroku main

方案三:使用 HTTP 代理

如果你有可用的代理,可以配置环境变量:

# 设置代理
export HTTP_PROXY=http://your-proxy:port
export HTTPS_PROXY=http://your-proxy:port

# 初始化 Terraform
terraform init

当前账户信息

根据 API 查询,你的 Heroku 账户有以下应用:

Terraform 配置文件说明

main.tf 包含以下资源:

  1. Heroku App - 主应用
  2. Formation - Web dyno 配置
  3. PostgreSQL Add-on - 数据库
  4. Redis Add-on - 缓存
  5. Config Vars - 环境变量

可自定义的变量

  • app_name - 应用名称默认terraform-app
  • region - 区域默认us
  • stack - Stack 版本默认heroku-22
  • dyno_size - Dyno 规格默认basic

注意事项

  1. Heroku 免费版已经停止,需要付费使用
  2. Add-ons 会产生额外费用
  3. 建议先在测试环境验证配置
  4. 记得定期检查账单和资源使用情况