スナップショットライフサイクルポリシーAPIの作成または更新
スナップショットライフサイクルポリシーを作成または更新します。
リクエスト
PUT /_slm/policy/<snapshot-lifecycle-policy-id>
前提条件
Elasticsearchのセキュリティ機能が有効になっている場合、このAPIを使用するには、manage_slm
クラスター権限と、含まれるインデックスに対するmanage
インデックス権限が必要です。詳細については、セキュリティ権限を参照してください。
説明
スナップショットライフサイクルポリシーAPIを使用して、スナップショットライフサイクルポリシーを作成または更新します。
ポリシーがすでに存在する場合、このリクエストはポリシーのバージョンを増加させます。ポリシーの最新バージョンのみが保存されます。
パスパラメータ
<snapshot-lifecycle-policy-id>
- (必須、文字列) 作成または更新したいスナップショットライフサイクルポリシーのID。
クエリパラメータ
master_timeout
- (オプション、時間単位) マスターノードを待機する期間。タイムアウトが切れる前にマスターノードが利用できない場合、リクエストは失敗し、エラーが返されます。デフォルトは
30s
です。リクエストがタイムアウトしないことを示すために-1
に設定することもできます。 timeout
- (オプション、時間単位) クラスターメタデータを更新した後、クラスタ内のすべての関連ノードからの応答を待機する期間。タイムアウトが切れる前に応答が受信されない場合、クラスターメタデータの更新は適用されますが、応答は完全に承認されなかったことを示します。デフォルトは
30s
です。リクエストがタイムアウトしないことを示すために-1
に設定することもできます。
リクエストボディ
config
- (必須、オブジェクト) ポリシーによって作成される各スナップショットの構成。
- `````expand_wildcards
- (オプション、文字列)
indices
パラメータのワイルドカードパターンがデータストリームおよびインデックスにどのように一致するかを決定します。カンマ区切りの値(例:open,hidden
)をサポートします。デフォルトはall
です。有効な値は次のとおりです:all
- 閉じたものや隠しを含む、任意のデータストリームまたはインデックスに一致します。
open
- 開いているインデックスおよびデータストリームに一致します。
closed
- 閉じたインデックスおよびデータストリームに一致します。
hidden
- 隠しデータストリームおよびインデックスに一致します。
open
、closed
、またはその両方と組み合わせる必要があります。 none
- ワイルドカードパターンを展開しません。
ignore_unavailable
- (オプション、Boolean)
false
の場合、indices
にあるデータストリームまたはインデックスが欠落していると、スナップショットは失敗します。true
の場合、スナップショットは欠落しているデータストリームおよびインデックスを無視します。デフォルトはfalse
です。 include_global_state
- (オプション、Boolean)
true
の場合、スナップショットにクラスタ状態を含めます。デフォルトはtrue
です。クラスタ状態には次のものが含まれます:- 永続的クラスタ設定
- インデックステンプレート
- レガシーインデックステンプレート
- インジェストパイプライン
- ILMポリシー
- 保存されたスクリプト
- 7.12.0以降に取得されたスナップショットの機能状態
indices
- (オプション、文字列または文字列の配列) スナップショットに含めるデータストリームおよびインデックスのカンマ区切りリスト。マルチターゲット構文をサポートします。デフォルトは空の配列(
[]
)で、すべての通常のデータストリームおよび通常のインデックスが含まれます。すべてのデータストリームおよびインデックスを除外するには、-*
を使用します。
このパラメータを使用して、スナップショットからシステムインデックスまたはシステムデータストリームを含めたり除外したりすることはできません。feature_states
を代わりに使用してください。
feature_states
- (オプション、文字列の配列) スナップショットに含める機能状態。可能な値とその説明のリストを取得するには、機能を取得するAPIを使用してください。
include_global_state
がtrue
の場合、スナップショットにはデフォルトですべての機能状態が含まれます。include_global_state
がfalse
の場合、スナップショットにはデフォルトで機能状態は含まれません。
空の配列を指定すると、デフォルトの動作になります。include_global_state
の値に関係なくすべての機能状態を除外するには、none
の値のみを持つ配列を指定します(["none"]
)。 metadata
- (オプション、オブジェクト) スナップショットに任意のメタデータを添付します。たとえば、スナップショットを取得した人、なぜ取得されたのか、またはその他の有用なデータの記録などです。メタデータは1024バイト未満である必要があります。
partial
- (オプション、Boolean)
false
の場合、スナップショットに含まれる1つ以上のインデックスがすべてのプライマリシャードを利用できない場合、スナップショット全体が失敗します。デフォルトはfalse
です。true
の場合、利用できないシャードを持つインデックスの部分スナップショットを取得することを許可します。
name
- (必須、文字列) ポリシーによって作成される各スナップショットに自動的に割り当てられる名前。日付数学がサポートされています。スナップショット名の競合を防ぐために、UUIDが自動的に各スナップショット名に追加されます。
repository
(必須、文字列) このポリシーによって作成されたスナップショットを保存するために使用されるリポジトリ。このリポジトリはポリシーの作成前に存在している必要があります。スナップショットリポジトリAPIを使用してリポジトリを作成できます。
retention
- (オプション、オブジェクト) ポリシーによって作成されたスナップショットを保持および削除するために使用される保持ルール。
- `````expire_after
- (オプション、時間単位) スナップショットが期限切れと見なされ、削除の対象となるまでの時間。SLMは
slm.retention_schedule
に基づいて期限切れのスナップショットを削除します。 max_count
- (オプション、整数) スナップショットがまだ期限切れでなくても保持する最大スナップショット数。このリポジトリ内のスナップショットの数がこの制限を超えると、ポリシーは最新のスナップショットを保持し、古いスナップショットを削除します。この制限には、
state
の状態がSUCCESS
のスナップショットのみが含まれます。 min_count
- (オプション、整数) スナップショットが期限切れであっても保持する最小スナップショット数。
schedule
- (必須、Cron構文) ポリシーがスナップショットを作成する周期的または絶対的なスケジュール。SLMは
schedule
の変更を即座に適用します。
例
#### Python
``````python
resp = client.slm.put_lifecycle(
policy_id="daily-snapshots",
schedule="0 30 1 * * ?",
name="<daily-snap-{now/d}>",
repository="my_repository",
config={
"indices": [
"data-*",
"important"
],
"ignore_unavailable": False,
"include_global_state": False
},
retention={
"expire_after": "30d",
"min_count": 5,
"max_count": 50
},
)
print(resp)
`
Js
const response = await client.slm.putLifecycle({
policy_id: "daily-snapshots",
schedule: "0 30 1 * * ?",
name: "<daily-snap-{now/d}>",
repository: "my_repository",
config: {
indices: ["data-*", "important"],
ignore_unavailable: false,
include_global_state: false,
},
retention: {
expire_after: "30d",
min_count: 5,
max_count: 50,
},
});
console.log(response);
コンソール
PUT /_slm/policy/daily-snapshots
{
"schedule": "0 30 1 * * ?",
"name": "<daily-snap-{now/d}>",
"repository": "my_repository",
"config": {
"indices": ["data-*", "important"],
"ignore_unavailable": false,
"include_global_state": false
},
"retention": {
"expire_after": "30d",
"min_count": 5,
"max_count": 50
}
}
スナップショットを取得する時間、ここでは毎日午前1時30分 | |
各スナップショットに付ける名前 | |
スナップショットを取得するリポジトリ | |
追加のスナップショット構成 | |
スナップショットに含めるデータストリームおよびインデックス | |
オプションの保持構成 | |
スナップショットを30日間保持 | |
30日以上経過しても、常に少なくとも5つの成功したスナップショットを保持 | |
30日未満でも、成功したスナップショットは50を超えないようにする |