スナップショットライフサイクルポリシー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
  • (必須、オブジェクト) ポリシーによって作成される各スナップショットの構成。
    1. - `````expand_wildcards
    • (オプション、文字列) indicesパラメータのワイルドカードパターンがデータストリームおよびインデックスにどのように一致するかを決定します。カンマ区切りの値(例:open,hidden)をサポートします。デフォルトはallです。有効な値は次のとおりです:
      • all
      • 閉じたものや隠しを含む、任意のデータストリームまたはインデックスに一致します。
      • open
      • 開いているインデックスおよびデータストリームに一致します。
      • closed
      • 閉じたインデックスおよびデータストリームに一致します。
      • hidden
      • 隠しデータストリームおよびインデックスに一致します。openclosed、またはその両方と組み合わせる必要があります。
      • none
      • ワイルドカードパターンを展開しません。
    • ignore_unavailable
    • (オプション、Boolean) falseの場合、indicesにあるデータストリームまたはインデックスが欠落していると、スナップショットは失敗します。trueの場合、スナップショットは欠落しているデータストリームおよびインデックスを無視します。デフォルトはfalseです。
    • include_global_state
    • (オプション、Boolean) trueの場合、スナップショットにクラスタ状態を含めます。デフォルトはtrueです。クラスタ状態には次のものが含まれます:
    • indices
    • (オプション、文字列または文字列の配列) スナップショットに含めるデータストリームおよびインデックスのカンマ区切りリスト。マルチターゲット構文をサポートします。デフォルトは空の配列([])で、すべての通常のデータストリームおよび通常のインデックスが含まれます。すべてのデータストリームおよびインデックスを除外するには、-*を使用します。
      このパラメータを使用して、スナップショットからシステムインデックスまたはシステムデータストリームを含めたり除外したりすることはできません。feature_statesを代わりに使用してください。
    • feature_states
    • (オプション、文字列の配列) スナップショットに含める機能状態。可能な値とその説明のリストを取得するには、機能を取得するAPIを使用してください。
      include_global_statetrueの場合、スナップショットにはデフォルトですべての機能状態が含まれます。include_global_statefalseの場合、スナップショットにはデフォルトで機能状態は含まれません。
      空の配列を指定すると、デフォルトの動作になります。include_global_stateの値に関係なくすべての機能状態を除外するには、noneの値のみを持つ配列を指定します(["none"])。
    • metadata
    • (オプション、オブジェクト) スナップショットに任意のメタデータを添付します。たとえば、スナップショットを取得した人、なぜ取得されたのか、またはその他の有用なデータの記録などです。メタデータは1024バイト未満である必要があります。
    • partial
    • (オプション、Boolean) falseの場合、スナップショットに含まれる1つ以上のインデックスがすべてのプライマリシャードを利用できない場合、スナップショット全体が失敗します。デフォルトはfalseです。
      trueの場合、利用できないシャードを持つインデックスの部分スナップショットを取得することを許可します。
  • name
  • (必須、文字列) ポリシーによって作成される各スナップショットに自動的に割り当てられる名前。日付数学がサポートされています。スナップショット名の競合を防ぐために、UUIDが自動的に各スナップショット名に追加されます。
  • repository
  • (必須、文字列) このポリシーによって作成されたスナップショットを保存するために使用されるリポジトリ。このリポジトリはポリシーの作成前に存在している必要があります。スナップショットリポジトリAPIを使用してリポジトリを作成できます。

  • retention
  • (オプション、オブジェクト) ポリシーによって作成されたスナップショットを保持および削除するために使用される保持ルール。
    1. - `````expire_after
    • (オプション、時間単位) スナップショットが期限切れと見なされ、削除の対象となるまでの時間。SLMはslm.retention_scheduleに基づいて期限切れのスナップショットを削除します。
    • max_count
    • (オプション、整数) スナップショットがまだ期限切れでなくても保持する最大スナップショット数。このリポジトリ内のスナップショットの数がこの制限を超えると、ポリシーは最新のスナップショットを保持し、古いスナップショットを削除します。この制限には、stateの状態がSUCCESSのスナップショットのみが含まれます。
    • min_count
    • (オプション、整数) スナップショットが期限切れであっても保持する最小スナップショット数。
  • schedule
  • (必須、Cron構文) ポリシーがスナップショットを作成する周期的または絶対的なスケジュール。SLMはscheduleの変更を即座に適用します。

  1. #### Python
  2. ``````python
  3. resp = client.slm.put_lifecycle(
  4. policy_id="daily-snapshots",
  5. schedule="0 30 1 * * ?",
  6. name="<daily-snap-{now/d}>",
  7. repository="my_repository",
  8. config={
  9. "indices": [
  10. "data-*",
  11. "important"
  12. ],
  13. "ignore_unavailable": False,
  14. "include_global_state": False
  15. },
  16. retention={
  17. "expire_after": "30d",
  18. "min_count": 5,
  19. "max_count": 50
  20. },
  21. )
  22. print(resp)
  23. `

Js

  1. const response = await client.slm.putLifecycle({
  2. policy_id: "daily-snapshots",
  3. schedule: "0 30 1 * * ?",
  4. name: "<daily-snap-{now/d}>",
  5. repository: "my_repository",
  6. config: {
  7. indices: ["data-*", "important"],
  8. ignore_unavailable: false,
  9. include_global_state: false,
  10. },
  11. retention: {
  12. expire_after: "30d",
  13. min_count: 5,
  14. max_count: 50,
  15. },
  16. });
  17. console.log(response);

コンソール

  1. PUT /_slm/policy/daily-snapshots
  2. {
  3. "schedule": "0 30 1 * * ?",
  4. "name": "<daily-snap-{now/d}>",
  5. "repository": "my_repository",
  6. "config": {
  7. "indices": ["data-*", "important"],
  8. "ignore_unavailable": false,
  9. "include_global_state": false
  10. },
  11. "retention": {
  12. "expire_after": "30d",
  13. "min_count": 5,
  14. "max_count": 50
  15. }
  16. }
スナップショットを取得する時間、ここでは毎日午前1時30分
各スナップショットに付ける名前
スナップショットを取得するリポジトリ
追加のスナップショット構成
スナップショットに含めるデータストリームおよびインデックス
オプションの保持構成
スナップショットを30日間保持
30日以上経過しても、常に少なくとも5つの成功したスナップショットを保持
30日未満でも、成功したスナップショットは50を超えないようにする