👨💼
TerraformでVercelの色々コード管理試してみた
概要
TerraformのVercel Providerを参考にVercelの下記の管理を試してみたので、つらつらやったことを書きます。
- Projects設定
- Projectの設定
- デプロイ
-
vercel_attack_challenge_mode
の設定
- 独自ドメイン設定
- Vercelに指定された
A
レコードの方式で独自ドメインを紐付け
- Vercelに指定された
コードは下記
※あくまでも現在何ができるのかな〜を軽く試してみたレベルの記事です
各種バージョン
-
hashicorp/aws
:5.58.0
-
vercel/vercel
:1.12.0
-
terraform_version
:1.5.7
Vercel Projectの作成
こちらの記事に沿ってサクサク作れました。
terraform {
required_providers {
vercel = {
source = "vercel/vercel"
version = "~> 1.0"
}
}
resource "vercel_project" "tf-nextjs-demo" {
name = "tf-nextjs-demo"
framework = "nextjs"
git_repository = {
type = "github"
repo = "自分のレポジトリ"
}
}
vercel_attack_challenge_mode
の設定
デプロイ + data "vercel_project_directory" "nextjs-blog" {
path = "../nextjs-blog" // デプロイしたいプロジェクトのDirを設定
}
resource "vercel_deployment" "tf-nextjs-demo_deployment" {
project_id = vercel_project.tf-nextjs-demo.id
files = data.vercel_project_directory.nextjs-blog.files
path_prefix = "../nextjs-blog"
production = true
}
resource "vercel_attack_challenge_mode" "tf-nextjs-demo_attack_challenge_mode" {
project_id = vercel_project.tf-nextjs-demo.id
enabled = true
}
カスタムドメインの設定
私の場合はRoute53で管理していたので、そのケースの設定になります。
- vercel側の設定(vercel_project_domainを参考に)
resource "vercel_project_domain" "tf-nextjs-demo_domain" {
project_id = vercel_project.tf-nextjs-demo.id
domain = "設定したい独自ドメイン"
}
- AWS側の設定(route53_recordを参考に)
下記の画像のようにVercelから指定されたAレコードで紐付けます。
// provider追加
terraform {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
}
data "aws_route53_zone" "dns_zone" {
name = "dnsゾーン指定"
}
resource "aws_route53_record" "dns_record" {
zone_id = data.aws_route53_zone.dns_zone.zone_id
name = "独自ドメイン"
type = "A"
ttl = 300
records = ["76.76.21.21"] // Vercelから指定されたIPアドレス
}
まとめ
↑やるとvercelのproject作成から独自ドメイン設定までコード管理できました。
あと、私の使ったvercel/vercel
: 1.12.0
だとStorage等のサポートはありませんでしたが、絶賛開発中みたいでした。
Discussion