年末だしTROCCO APIを活用してTROCCOユーザーの棚卸しをしよう!
はじめに
この記事は TROCCO® Advent Calendar 2024の4日目の記事です。
TROCCOでは、お客様のデータ基盤を中長期で運用する際の課題を解決するべく、直近APIの拡充を進めています。
また、一部のリソースについて、Terraform Providerを提供し、TROCCOのリソースをTerraformで管理できるように目下開発を進めています。
この記事では、その中で開発されたTROCCO ユーザーAPIを利用したちょっとした便利tipsとして、TROCCOユーザーの棚卸しを実施してみましょう。
具体的なやり方
STEP1: TROCCO API Keyを取得する
TROCCO API keyの取得方法については公式ドキュメントに記載がありますので、そちらを見ながら取得してください。
STEP2: APIからユーザー一覧を取得する
今回はPythonで取得します。
筆者はColaboratory上にコードを実行しました。
import requests
TROCCO_HOST = "https://trocco.io"
TROCCO_USERS_ENDPOINT = "/api/users"
TROCCO_API_KEY = "" # https://trocco.io/api_keys から取得できるAPI keyに置換する
header_content = {
'accept': "application/json",
'Authorization': f"Token {TROCCO_API_KEY}" # tips: 先頭に `Token ` という固定値をつける必要がある
}
# APIからデータ取得
res = requests.get(TROCCO_HOST + TROCCO_USERS_ENDPOINT, headers=header_content)
print(res.status_code) # 200が返ってきたら後続の作業を実施する
STEP3: pandas DataFrameに整形し、最近ログインしていないユーザーを抽出する
次にデータを整形していきます。まずJSONから取得したタイムスタンプのデータをpandasのdatetime型に変換しましょう。
TIMESTAMP_COLUMNS = ["last_sign_in_at", "created_at", "updated_at"]
# pandas DataFrameに変換
users_df = pd.DataFrame.from_dict(res.json()["items"])
# timestampカラムをdatetime型に変換
for col in TIMESTAMP_COLUMNS:
users_df[col] = pd.to_datetime(users_df[col])
さっそく整形されたデータを確認しましょう
display(users_df.dtypes)
users_df.head()
最終ログインが昨年時点のユーザー一覧を抽出しましょう。
users_df[users_df["last_sign_in_at"] < '2024-01-01'].sort_values("last_sign_in_at")
もし対象者が最近TROCCOを使っておらず、今後も使う予定がなさそうなユーザーが見つかったらアカウント特権管理者に依頼して削除してもらいましょう。
削除の方法は以下から確認ください。
他にも最終ログイン日時を半年以内を絞ったり、作成が古いユーザーを目検していっても良いかもしれません。
TROCCOの大掃除も済ませて良い年を迎えましょう!
利用したコード
全体の流れは以下のgistにて公開しています。
「Open in Colab」ボタンから環境構築不要で実行できるので※、ぜひ試してみてください!
※TROCCOにIP制限をかけていない場合に限ります。IP制限をかけている場合、許可済みIPアドレスからTROCCOにアクセスできる環境にて実行ください。
Discussion