嗨,听说在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
スクリーンショット 2022-07-02 19.20.39.png

准备 Terraform

コンテナ実行中のターミナルはそのままにし、新規ターミナルのウィンドウを開く

以下コマンドを実行し、Spotify用Terraformのチュートリアルファイルをクローンする

$ git clone https://github.com/hashicorp/learn-terraform-spotify.git
$ cd learn-terraform-spotify
スクリーンショット 2022-07-02 19.30.25.png
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"
スクリーンショット 2022-07-02 19.59.46.png

如果能够顺利创建播放列表的话

让我们在Twitter上使用标签发表推文吧。说不定能获得Hashicorp T恤衫!

 

虽然Terraform很有趣……但我觉得直接创建播放列表可能会更快一点呢,哈哈。
只要用一些大规模操作和自动化的思路,肯定能找到有效的使用方法!!

延伸故事(结尾)

其实这篇文章我已经放置了大约2个月,但是我还没有收到T恤,所以似乎有疑问这个活动已经结束了。苦笑
什么鬼!

最近看到的那个推特是关于收到T恤的,不知道是什么意思呢…

 

广告
将在 10 秒后关闭
bannerAds