大量のNetlifyサイトが溜まってきたので、CLIを使って一括削除した際の手順をまとめます。

背景

開発やテストで作成したNetlifyサイトが41個まで増えていました。現在使用しているサイトは数個だけだったため、古いサイトをまとめて削除することにしました。

環境

  • macOS
  • Node.js
  • netlify-cli v23.15.1

手順

1. Netlify CLIのインストール

npminstall-gnetlify-cli

2. ログイン

netlifylogin

ブラウザが開き、Netlifyの認証画面が表示されます。認証を許可するとCLIにトークンが保存されます。

3. サイト一覧の取得

netlifysites:list

JSON形式で取得する場合は --json オプションを付けます。

netlifysites:list-json

Python等で整形して確認すると見やすくなります。

nispf"emirotptirloenirstinuuspppft(,arpirrry=fmldtiiij'seaennnssj=t_tttiosi=ei(((tno:nsddfffe,ns.'''s.{e.g=={:sllngeilyoeuetss+isanmt(..1sd(e('gg:t(sr'uee3UsianrttdRyttal((}L-seem'''.::j.s(e,uiss)s'pd{{{ot}i,'d'nuundtNa,arpie'/tmld|nsNAe'e}a))/'dN}'tp\:A)_/')eyn'aA)dt')t'}h)')o,nI3'DN:-/cA{'s")i[t:e1_0i]d}')

4. サイトの削除

個別に削除する場合:

netlifysites:delete-force<site-id>

--force を付けないと確認プロンプトが表示されます。

5. シェルスクリプトで一括削除

削除対象のサイトIDと名前を配列に入れて、ループで一括削除できます。

#sdffdeeee!ieaoocccc/t"""lirineiefnhhhhbexyzeldacflieooooisxyztee=mhesen=xyzedn"eonc(ec(""""/(xyzd=t$=ehdhf"=bxyz=0r{"-toeoa=axyz0ye$nlli=:sxyzn{i"e"lhxyzite"fOtFe:$---nrnyKeAdfxyzyt"dI+$axyz"%rs+L+=dixyz$%y:i+E)=elxyz{:#t)D)=le---s*#$e)""edxyzi}*nst"xyzt":a:exyze}mddxyzs"ee"---[lxyz@exyz]txyz}exyz"---;"xyz-xyzdfxyzooxyzrxyzcxyzexyzxyz"xyz$xyzixyzdxyz":::sss2iii>ttt&eee1---;nnnaaatmmmheeee---n123"""

APIを直接使う方法

CLIを使わずにREST APIを直接呼ぶことも可能です。

認証トークンの取得

Netlifyのユーザー設定 > Applications > Personal access tokens からトークンを作成します。

サイト一覧の取得

curhltt-pHs:"/A/uatphio.rnieztaltiifoyn.:coBme/aarpeir/v$1N/EsTiLtIeFsY_AUTH_TOKEN"\

サイトの削除

cur-hlHtt-"pXAsu:Dt/EhLaErpTiiEz.an\teitolni:fyB.ecaorme/rap$iN/EvT1L/IsFiYt_eAsU/T<Hs_iTtOeK-EiNd">\

実行結果

今回は41サイト中39サイトを削除し、使用中の2サイトのみを残しました。全件エラーなく完了しました。

まとめ

  • Netlify CLIの sites:listsites:delete で簡単にサイトの管理ができる
  • --json オプションでプログラムから扱いやすい形式で取得できる
  • --force オプションで確認プロンプトをスキップできるため、一括処理に便利
  • 削除は取り消せないので、削除前にサイト一覧を確認してから実行すること