嗨,听说在Terraform上创建Spotify播放列表可以得到一件T恤衫吗?
只要使用 Terraform 创建 Spotify 播放列表并在 Twitter 上发推文,就可以获得 Hashicorp T 恤衫?
一开始就有适用于Spotify的Terraform提供者,真是令人惊讶呢。
参考了的网页
由于 Windows 是一篇常见的文章,我们将为 M1 Mac 进行自定义并开始实施。
环境准备完毕
Macbook Air(M1)でターミナルを起動
Gitをインストール
$ brew install git
$ git version
git version 2.37.0
- Terraformをインストール
$ brew install terraform
$ terraform version
Terraform v1.2.4
on darwin_arm64
- Docker Desktopのインストール
- VS Codeのインストール
- Spotifyアカウント作成
亲自动手操作的步骤 zì de
创建Spotify开发者应用程序
- Spotify Developers Dashboardにログインし、利用許諾に同意する
Create an app をクリック
App name:tfspot など適当な名前を入れる
App description: tfspot など適当な説明を入れる
Edit settings をクリック
Redirect URLs: http://localhost:27228/spotify_callback を入力しAddをクリック
Saveをクリック
启动用于认证代理的容器。
- Macのターミナルを起動し、環境変数をセット
$ set SPOTIFY_CLIENT_REDIRECT_URI=http://localhost:27228/spotify_callback
- ホーム配下にワークフォルダー tfspot を作成
$ cd ~
$ mkdir tfspot
- テキストファイル .env を作成し、tfspot配下に配置
SPOTIFY_CLIENT_ID=Spotify Developer Dashboardの「ClientID」
SPOTIFY_CLIENT_SECRET=Spotify Developer Dashboardの「Client Secret」
- 認証プロキシ用コンテナを起動
$ docker run --rm -it -p 27228:27228 --env-file .env ghcr.io/conradludgate/spotify-auth-proxy
准备 Terraform
コンテナ実行中のターミナルはそのままにし、新規ターミナルのウィンドウを開く
以下コマンドを実行し、Spotify用Terraformのチュートリアルファイルをクローンする
$ git clone https://github.com/hashicorp/learn-terraform-spotify.git
$ cd learn-terraform-spotify
terraform {
required_providers {
spotify = {
version = "~> 0.2.6"
source = "conradludgate/spotify"
}
}
}
provider "spotify" {
api_key = var.spotify_api_key
}
data "spotify_search_track" "by_artist" {
artist = "Nana Mizuki"
album = "POP MASTER"
name = "UNBREAKABLE"
}
resource "spotify_playlist" "playlist" {
name = "お奈々"
description = "This playlist was created by Terraform"
public = true
tracks = [
data.spotify_search_track.by_artist.tracks[0].id,
# data.spotify_search_track.by_artist.tracks[1].id,
# data.spotify_search_track.by_artist.tracks[2].id,
]
}
terraform.tfvars.example ファイルを修正する
ファイル名を terraform.tfvars に変更
ファイル内の … の部分を、Dockerコンテナ起動後のターミナルに出力されている APIKeys の値で置き換える
执行Terraform
- 以下コマンドでワークスペースの初期化を実施
$ terraform init
(中略)
Terraform has been successfully initialized!
- 以下コマンドでTerraformによるリソース作成を実施
$ terraform apply
对于熟悉Terraform的用户来说,他们会看到熟悉的“Plan”结果显示。通过”+”符号告诉他们将创建哪些资源。
Terraform used the selected providers to generate the following execution plan. Resource actions
are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# spotify_playlist.playlist will be created
+ resource "spotify_playlist" "playlist" {
+ description = "This playlist was created by Terraform"
+ id = (known after apply)
+ name = "お奈々"
+ public = true
+ snapshot_id = (known after apply)
+ tracks = [
+ "3IY2GIqcVAYhaM2zn5r3vh",
]
}
Plan: 1 to add, 0 to change, 0 to destroy.
Changes to Outputs:
+ playlist_url = (known after apply)
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value:
- 問題なさそうなら yes と入力し実行。以下が表示されれば成功。
(前略)
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Outputs:
playlist_url = "https://open.spotify.com/playlist/16bua5a1CXLQpI8vg5asJo"
如果能够顺利创建播放列表的话
让我们在Twitter上使用标签发表推文吧。说不定能获得Hashicorp T恤衫!
虽然Terraform很有趣……但我觉得直接创建播放列表可能会更快一点呢,哈哈。
只要用一些大规模操作和自动化的思路,肯定能找到有效的使用方法!!
延伸故事(结尾)
其实这篇文章我已经放置了大约2个月,但是我还没有收到T恤,所以似乎有疑问这个活动已经结束了。苦笑
什么鬼!
最近看到的那个推特是关于收到T恤的,不知道是什么意思呢…