設定値をコードに書かないという発想
GASで処理を書いていると、次のような情報を扱いたくなる場面が出てきます。
- スプレッドシートID
- シート名
- 通知先メールアドレス
- 外部APIのキー
初心者のうちは、これらをコードに直接書いてしまいがちです。
しかし実務では、設定値をコードに埋め込む設計は避けるのが基本になります。
この問題を解決するために使うのが PropertiesService です。
この記事では、基本的な使い方に加え、更新・削除・全初期化まで含めた運用を整理します。
目次
PropertiesServiceとは何か
PropertiesServiceは、GASでキーと値のペアを永続的に保存できる仕組みです。
設定値や秘密情報をコードから分離するための、軽量な設定ストアです。
なぜ設定値を分離するのか
- APIキーやURLの漏洩リスクを下げる
- 環境ごとの切り替えが容易
- ロジック変更と設定変更を分離できる
特にAPIキーは、定期的な更新や無効化が発生するため、
PropertiesServiceとの相性が非常に良い対象です。
3種類のプロパティの違い
- ScriptProperties:全体共有(APIキー向け)
- UserProperties:ユーザー単位
- DocumentProperties:ドキュメント単位
本記事では ScriptProperties を前提に説明します。
初期設定手順(画面操作)
function initProperties() {
const props = PropertiesService.getScriptProperties();
props.setProperty('API_KEY', 'xxxxxxxx');
props.setProperty('SHEET_ID', 'yyyyyyyy');
}
この関数を一度実行するだけで、設定は完了します。
設定後は削除しても問題ありません。
基本的な使い方(保存・取得)
function getSettings() {
const props = PropertiesService.getScriptProperties();
return {
apiKey: props.getProperty('API_KEY'),
sheetId: props.getProperty('SHEET_ID')
};
}
更新・削除・ローテーション運用
設定値の更新
function updateApiKey(newKey) {
PropertiesService.getScriptProperties()
.setProperty('API_KEY', newKey);
}
不要な設定の削除
function deleteSetting(key) {
PropertiesService.getScriptProperties()
.deleteProperty(key);
}
APIキー更新時は、停止せずに差し替える運用が可能です。
全削除・初期化スクリプト
検証環境のリセットや、不要設定の一掃を行いたい場合は、
全プロパティ削除が役立ちます。
ScriptPropertiesをすべて削除する
function clearAllProperties() {
PropertiesService.getScriptProperties().deleteAllProperties();
}
この関数を実行すると、ScriptProperties内の値はすべて削除されます。
本番環境での実行には十分注意してください。
安全に初期化する運用例
function resetProperties() {
clearAllProperties();
initProperties();
}
このように、「全削除 → 再登録」をセットにすると、
環境を安全に初期化できます。
注意点とよくある失敗
- 値はすべて文字列で保存される
- 削除操作は元に戻せない
- ログや一時データ用途には使わない
PropertiesServiceは設定管理専用として使うことで、
GAS全体の設計が安定します。
まとめ
この記事では、PropertiesServiceの基本から、
初期設定・更新・削除・全初期化までの運用方法を解説しました。
次回は、これらの設定値を安全に使うための
例外処理(try-catch)とログ設計を解説します。
0 件のコメント:
コメントを投稿