タダです.
Bytebase を使っていて手動オペレーションの中でいわゆるトイルになってしまって運用上負担になってしまう状況を改善したいと思い,API を使ってみることにしました.この記事では Bytebase の API を使用するための事前準備,認証,特定のエンドポイントを叩いてみた内容をまとめます.
事前準備
事前準備としてサービスアカウントのユーザーを作ります.Workspace Admin か DBA のロールを付与する必要があるため,DBAを設定して作成しました.作成後にサービスアカウントキーをコピーしておきます.
API の認証
export bytebase_url=[Bytebase の外部 URL] export bytebase_account=[サービスアカウントのユーザーメールアドレス] export bytebase_password=[サービスアカウントキー]
環境変数の設定後,認証のエンドポイントを叩いて, {"token": "API トークン"}
が返ってくれば認証成功です.
bytebase_token=$(curl -X POST ${bytebase_url}/v1/auth/login \ --data-raw '{"email":"'${bytebase_account}'","password":"'${bytebase_password}'","web":true}' \ --compressed 2>&1 {"token":"hoge"}
特定のエンドポイントを叩いて実行確認をしてみる
今回は Bytebase のライセンスの割当て/剥奪を実行してみます.Bytebase のライセンスを購入したら DB インスタンスの設定画面よりトグルで ON/OFF することでライセンスの割当て/剥奪を容易に実行できます.ただし,毎回手動オペレーションが発生しており,これを API で実行できるようにしたいというのが今回のモチベーションになっています.インスタンスの設定をいじることができるのは /v1/instances/{instance}
のエンドポイントになります.
コマンドで試した結果,以下の実行によりライセンスの割当てと剥奪を実行することができました.
curl --request PATCH \ --url https://[Bytebaseのドメイン]/v1/instances/[Bytebaseに登録しているDBインスタンスID]?update_mask=activation' \ --header 'Authorization: Bearer [取得した認証トークン]' \ --data '{ "activation": true(有効化)/false(無効化) }'
まとめ
Bytebase の API を使って普段手動オペレーションしている作業を API で実行できないか試してみたので,試した内容をまとめました.今後もオペレーションが増えてきた場合は API からの実行を試みて行こうと思います.