によって転送されたデータのフィルタリング AWS DataSync - AWS DataSync

2023 年 12 月 7 日より、バージョン 1 DataSync のエージェントは廃止されます。 DataSync コンソールの [エージェント] ページをチェックして、影響を受けるエージェントがいないか確認してください。その場合は、データ転送やストレージ検出の中断を避けるため、その前にそれらのエージェントを交換してください。さらにサポートが必要な場合は、お問い合わせくださいAWS Support

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

によって転送されたデータのフィルタリング AWS DataSync

AWS DataSyncデータのサブセット (特定のファイル、フォルダー、オブジェクトなど) のみを転送する場合に、フィルターを適用できます。たとえば、ソースの場所にで終わる一時ファイルが含まれている場合.tmp、除外フィルターを作成して、これらのファイルが宛先に届かないようにすることができます。

除外フィルターと包含フィルターを組み合わせて同じ転送タスクで使用できます。タスクを作成または開始するときに、 DataSync CreateTaskStartTaskExecutionコンソールまたはまたは操作を使用してフィルターを追加できます。

フィルタリングの条件、定義、および構文

フィルターの用語と定義についてよく理解しておいてください。

フィルター

特定のフィルターを構成する文字列全体 (たとえば、*.tmp|*.tempまたは/folderA|/folderB)。

フィルターは、パイプ (|) で区切られたパターンで構成されています。 DataSync コンソールにパターンを追加するときは区切り文字は必要ありません。各パターンは別々に追加されるからです。

注記

フィルターは大文字と小文字を区別します。たとえば、/folderAフィルターは一致しません/FolderA

パターン:

フィルター内のパターン。たとえば、*.tmp は、*.tmp|*.temp フィルターの一部のパターンです。

フォルダ
  • すべてのフィルターは、送信元のパスに相対的です。たとえば、ソースの場所とタスクを作成する際にソースパスとして /my_source/ を指定し、インクルードフィルター /transfer_this/ を指定したとします。この場合、 DataSync/my_source/transfer_this/ディレクトリとその内容だけが転送されます。

  • 送信元の直下のフォルダを指定するには、フォルダ名の前にスラッシュ (/) を含めます。前の例では、transfer_this ではなく /transfer_this をパターンで使用します。

  • DataSync 以下のパターンを同じように解釈し、フォルダとその内容の両方にマッチします。

    /dir

    /dir/

  • Amazon S3 バケットとの間でデータを転送する場合、 DataSync /はオブジェクトキー内の文字をファイルシステム上のフォルダと同等のものとして扱います。

特殊文字

フィルタリングで使用する特殊文字は、次のとおりです。

特殊文字 説明

* (ワイルドカード)

0 個以上の文字に一致させるために使用する文字。たとえば、/movies_folder*/movies_folder/movies_folder1 の両方に一致します。

| (パイプの区切り文字)

パターン間の区切りとして使用する文字。いずれかがフィルターに一致する、複数のパターンを指定できます。たとえば、*.tmp|*.temptmp または temp のいずれかで終わるファイルに一致します。

注記

コンソールでパターンを追加する際には、各パターンを個別の行に追加するため、この区切り記号は必要ありません。

\ (バックスラッシュ)

ファイル名やオブジェクト名に含まれる特殊文字 (*、|、\) をエスケープするための文字です。

バックスラッシュがファイル名に含まれている場合は、二重バックスラッシュ (\\) が必要です。同様に、\\\\ は、ファイル名での連続する 2 つのバックスラッシュを表します。

パイプがファイル名に含まれている場合は、パイプの前にバックスラッシュ (\|) が必要です。

バックスラッシュ (\) に続くその他の文字、またはパターン末尾にある \ は無視されます。

転送からのデータの除外

除外フィルターでは、送信元から送信先にファイルを転送するときに除外されるファイル、フォルダ、およびオブジェクトを定義します。これらのフィルターは、タスクの作成、編集、または開始時に設定できます。

デフォルトではフォルダは除外されます。

DataSync スナップショットによく使用されるフォルダや転送を円滑に進めるために、データ転送中に一部のフォルダ (またはディレクトリ) を自動的に無視します。 DataSync デフォルトで除外されるフォルダーは次のとおりです。

  • /.snapshot

    このディレクトリは通常、 point-in-time ストレージシステムのファイルまたはディレクトリのスナップショットを保存するために使用されます。

  • /.aws-datasync および /.awssync

    DataSync 転送を円滑に進めるため、これらのディレクトリがユーザーの場所に作成されます。

  • /.zfs

    OpenZFS 用の Amazon FSx のロケーションでは、このディレクトリが表示される場合があります。

除外フィルターの追加

DataSync コンソールで除外フィルター付きの転送タスクを作成するには、「除外パターン」の「データ転送設定セクションでパターンのリストを指定します。たとえば、temp または tmpという名前の一時フォルダを除外するには、*/temp除外パターンボックス で指定し、Add patterns (パターンの追加) を選択してから、2 番目のテキストボックスで */tmp を指定できます。フィルターにさらにパターンを追加するには、[Add pattern (パターンの追加)] を選択します。

AWS Command Line Interface(AWS CLI) を使用するときは、フィルターを単一引用符 (') で囲む必要があり、区切り文字として | (パイプ) を使用します。この例では | と指定します。'*/temp */tmp'

aws datasync create-task \ --source-location-arn 'arn:aws:datasync:region:account-id:location/location-id' \ --destination-location-arn 'arn:aws:datasync:region:account-id:location/location-id' \ --cloud-watch-log-group-arn 'arn:aws:logs:region:account-id:log-group:your-log-group' \ --excludes FilterType=SIMPLE_PATTERN,Value='*/temp|*/tmp'

タスクを作成した後でも、除外フィルターにパターンを追加したり、除外フィルターからパターンを削除したりできます。変更は、future タスクの実行に適用されます。

タスクを開始すると、除外フィルターのパターンを変更することもできます。

転送にデータを含める

インクルードフィルターは、 DataSync タスクの実行時に転送されるファイル、フォルダー、オブジェクトを定義します。インクルードフィルターは、タスクの作成、編集、または開始時に設定できます。

インクルードフィルター付きのタスクを作成するには、特定のファイルとフォルダ オプションを選択し、インクルードパターンでインクルードするパターンのリストを指定します。

DataSync インクルードフィルターに一致するファイルとフォルダーのみをスキャンして転送します。たとえば、ソースフォルダのサブセットが含まれるようにするには、/important_folder_1|/important_folder_2 と指定します。

タスクを作成した後、タスク設定を編集して、インクルードフィルターとの間でパターンを追加または削除できます。変更はすべて今後のタスクの実行に適用されます。

タスクを実行する際に、上書きで開始する オプションを使用して、インクルードフィルターのパターンを変更できます。加えた変更は、そのタスクの実行にのみ適用されます。

AWS CLI を使用してインクルードフィルタを作成または編集することもできます。以下の例は、CLI コマンドを示しています。フィルターを囲む引用符 (') と、区切り記号として使用される | (パイプ) に注意してください。

aws datasync start-task-execution --task-arn 'arn:aws:datasync:region:account-id:task/task-id' --includes FilterType=SIMPLE_PATTERN,Value='/important_folder1|/important_folder2'
注記

インクルードフィルターはパターンの右端にある場合のみ、ワイルドカード (*) をサポートしています。たとえば、/documents* | /code* はサポートされていますが*.txt、サポートされていません。

フィルターの例

以下の例は、で使用できる一般的なフィルターを示しています DataSync。

注記

フィルターで使用できる文字数には制限があります。詳細については、「DataSync タスククォータ」を参照してください。

送信元からの一部のフォルダの除外

場合によっては、コピー元の場所にあるフォルダーを除外して、コピー先の場所にコピーしないようにしたい場合があります。たとえば、 work-in-progress 一時フォルダがある場合は、次のようなフィルタを使用できます。

*/.temp

内容が似ているフォルダー (/reports2021やなど/reports2022)) を除外するには、次のような除外フィルターを使用できます。

/reports*

ファイル階層の任意のレベルのフォルダーを除外するには、次のような除外フィルターを使用できます。

*/folder-to-exclude-1|*/folder-to-exclude-2

ソースロケーションの最上位にあるフォルダーを除外するには、次のような除外フィルターを使用できます。

/top-level-folder-to-exclude-1|/top-level-folder-to-exclude-2

送信元でフォルダのサブセットを含める

場合によっては、ソースの場所が大きなシェアを占めており、ルートにあるフォルダーのサブセットを転送する必要がある場合があります。特定のフォルダを含めるには、次のようなインクルードフィルターを使用して、タスクの実行を開始します。

/folder-to-transfer/*

特定のファイルタイプを除外する

特定の種類のファイルを転送から除外するには、*.temp のような除外フィルターを使用してタスクの実行を作成できます。

指定した個別のファイルを転送する

個別のファイルのリストを転送するには、次のようなインクルードフィルターを使用して、タスクの実行を開始します:「/folder/subfolder/file1.txt|/folder/subfolder/file2.txt|/folder/subfolder/file2.txt