

# Storage Lens グループの作成
<a name="storage-lens-groups-create"></a>

以下の例は、Amazon S3 コンソール AWS Command Line Interface (AWS CLI)、および AWS SDK for Java を使用して Amazon S3 ストレージレンズグループを作成する方法を示しています。

## S3 コンソールの使用
<a name="create-storage-lens-group-console"></a>

**Storage Lens グループを作成するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) を開きます。

1. ページ上部にあるナビゲーションバーで、現在表示されている AWS リージョンの名前をクリックします。次に、切り替え先のリージョンを選択します。

1. ナビゲーションペインで、**[Storage Lens グループ]**を選択します。

1. **[Storage Lens グループの作成]** を選択します。

1. **[全般]** で、現在の **[ホームリージョン]** を表示して、**[ストレージレンズグループ名]** を入力します。

1. **[スコープ]** で、Storage Lens グループに適用するためのフィルタを選択します。複数のフィルタを適用するには、フィルタを選択し、**AND** または **OR** 論理演算子を選択します。
   + **[プレフィックス]** フィルタでは、**[プレフィックス]** を選択し、プレフィックス文字列を入力します。複数のプレフィックスを追加するには、**[プレフィックスを追加]** を選択します。プレフィックスを削除するには、削除するボリュームの横にある **[削除]** を選択します。
   + **[オブジェクトタグ]** フィルタでは、**[オブジェクトタグ]** を選択し、オブジェクトのキーと値のペアを入力します。次に、**[タグを追加]** を選択します。タグを削除するには、削除したいタグの横にある**[削除]** を選択します。
   + **[サフィックス]** フィルタでは、**[サフィックス]** を選択し、サフィックス文字列を入力します。複数のサフィックスを追加するには、**[サフィックスを追加]** を選択します。サフィックスを削除するには、削除したいサフィックスの横にある**[削除]** を選択します。
   + **[経過時間]** フィルタでは、オブジェクトの有効期間を日単位で指定します。**[オブジェクトの最短経過時間を指定]** を選択し、オブジェクトの最低経過時間を入力します。次に、**[オブジェクトの最長経過時間を指定]** を選択し、オブジェクトの最長経過時間を入力します。
   + **[サイズ]** フィルタで、オブジェクトサイズの範囲と測定単位を指定します。**[最小オブジェクトサイズを指定]** を選択し、オブジェクトの最小オブジェクトサイズを入力します。**[最大オブジェクトサイズを指定]** を選択し、オブジェクトの最大オブジェクトサイズを入力します。

1. (オプション) AWS リソースタグには、キーと値のペアを追加し、**[タグを追加]** を選択します。

1. **[Storage Lens グループの作成]** を選択します。

## の使用AWS CLI
<a name="create-storage-lens-group-cli"></a>

次の AWS CLI コマンド例は、Storage Lens グループを作成します。このコマンド例を実行するには、`{{user input placeholders}}` をユーザー自身の情報に置き換えます。

```
aws s3control create-storage-lens-group --account-id {{111122223333}} \ 
--region {{us-east-1}} --storage-lens-group=file://./{{marketing-department}}.json
```

次の AWS CLI コマンド例は、2 つの AWS リソースタグを持つ Storage Lens グループを作成します。このコマンドの例を実行するには、`{{user input placeholders}}` をユーザー自身の情報に置き換えます。

```
aws s3control create-storage-lens-group --account-id {{111122223333}} \ 
--region {{us-east-1}} --storage-lens-group=file://./{{marketing-department}}.json \
--tags Key={{k1}},Value={{v1}} Key={{k2}},Value={{v2}}
```

JSON 設定例については、「[Storage Lens グループの設定](storage-lens-groups.md#storage-lens-groups-configuration)」を参照してください。

## AWS SDK for Java の使用
<a name="create-storage-lens-group-sdk-java"></a>

次の AWS SDK for Java 例は、Storage Lens グループを作成します。この例を実行するには、`{{user input placeholders}}` をユーザー自身の情報に置き換えます。

**Example — 1 つのフィルタで Storage Lens グループを作成します。**  
次の例は、`{{Marketing-Department}}` という Storage Lens グループを作成します。このグループには、経過時間範囲を `{{30}}`～`{{90}}` 日で指定するオブジェクト経過時間フィルタがあります。この例を実行するには、`{{user input placeholders}}` をユーザー自身の情報に置き換えます。  

```
package aws.example.s3control;
 
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.MatchObjectAge;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
 
public class CreateStorageLensGroupWithObjectAge {
    public static void main(String[] args) {
        String storageLensGroupName = "{{Marketing-Department}}";
        String accountId = "{{111122223333}}";
        
        try {
            StorageLensGroupFilter objectAgeFilter = StorageLensGroupFilter.builder()
                    .matchObjectAge(MatchObjectAge.builder()
                            .daysGreaterThan({{30}})
                            .daysLessThan({{90}})
                            .build())
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name({{storageLensGroupName}})
                    .filter({{objectAge}}Filter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup({{storageLensGroup}})
                    .accountId({{accountId}}).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.{{US_WEST_2}})
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

**Example — 複数のフィルタを含む `AND` 演算子を使用して Storage Lens グループを作成します。**  
次の例は、`{{Marketing-Department}}` という Storage Lens グループを作成します。このグループ `AND` は演算子を使用して、オブジェクトが**すべて**のフィルタ条件に一致する必要があることを示します。この例を実行するには、`{{user input placeholders}}` をユーザー自身の情報に置き換えます。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.MatchObjectAge;
import software.amazon.awssdk.services.s3control.model.MatchObjectSize;
import software.amazon.awssdk.services.s3control.model.S3Tag;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupAndOperator;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;


public class CreateStorageLensGroupWithAndFilter {
    public static void main(String[] args) {
        String storageLensGroupName = "{{Marketing-Department}}";
        String accountId = "{{111122223333}}";

        try {
            // Create object tags.
            S3Tag tag1 = S3Tag.builder()
                    .key("{{object-tag-key-1}}")
                    .value("{{object-tag-value-1}}")
                    .build();
            S3Tag tag2 = S3Tag.builder()
                    .key("{{object-tag-key-2}}")
                    .value("{{object-tag-value-2}}")
                    .build();

            StorageLensGroupAndOperator andOperator = StorageLensGroupAndOperator.builder()
                    .matchAnyPrefix("{{prefix-1}}", "{{prefix-2}}", "{{prefix-3/sub-prefix-1}}")
                    .matchAnySuffix("{{.png}}", "{{.gif}}", "{{.jpg}}")
                    .matchAnyTag({{tag1}}, {{tag2}})
                    .matchObjectAge(MatchObjectAge.builder()
                            .daysGreaterThan({{30}})
                            .daysLessThan({{90}}).build())
                    .matchObjectSize(MatchObjectSize.builder()
                            .bytesGreaterThan({{1000L}})
                            .bytesLessThan({{6000L}}).build())
                    .build();

            StorageLensGroupFilter andFilter = StorageLensGroupFilter.builder()
                    .and(andOperator)
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name({{storageLensGroupName}})
                    .filter(andFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup({{storageLensGroup}})
                    .accountId({{accountId}}).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.{{US_WEST_2}})
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

**Example — 複数のフィルタを含む `OR` 演算子を使用して Storage Lens グループを作成します。**  
次の例は、`{{Marketing-Department}}` という Storage Lens グループを作成します。このグループは、`OR` 演算子を使用してプレフィックスフィルタ (`{{prefix-1}}`、`{{prefix-2}}`、`{{prefix3/sub-prefix-1}}`) または `{{1000}}`～`{{6000}}` バイトまでのサイズ範囲を持つオブジェクトサイズフィルタを適用します。この例を実行するには、`{{user input placeholders}}` をユーザー自身の情報に置き換えます。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.MatchObjectSize;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupOrOperator;

public class CreateStorageLensGroupWithOrFilter {
    public static void main(String[] args) {
        String storageLensGroupName = "{{Marketing-Department}}";
        String accountId = "{{111122223333}}";

        try {
            StorageLensGroupOrOperator orOperator = StorageLensGroupOrOperator.builder()
                    .matchAnyPrefix("{{prefix-1}}", "{{prefix-2}}", "{{prefix-3/sub-prefix-1}}")
                    .matchObjectSize(MatchObjectSize.builder()
                            .bytesGreaterThan({{1000L}})
                            .bytesLessThan({{6000L}})
                            .build())
                    .build();

            StorageLensGroupFilter orFilter = StorageLensGroupFilter.builder()
                    .or(orOperator)
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name({{storageLensGroupName}})
                    .filter(orFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup({{storageLensGroup}})
                    .accountId({{accountId}}).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.{{US_WEST_2}})
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

**Example — 1 つのフィルタと 2 つの AWS リソースタグを持つ Storage Lens グループを作成します。**  
次の例は、サフィックスフィルタを持つ `{{Marketing-Department}}` という Storage Lens グループを作成します。この例では、Storage Lens グループに 2 AWS つのリソースタグも追加しています。この例を実行するには、`{{user input placeholders}}` をユーザー自身の情報に置き換えます。  

```
package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
import software.amazon.awssdk.services.s3control.model.Tag;

public class CreateStorageLensGroupWithResourceTags {
    public static void main(String[] args) {
        String storageLensGroupName = "{{Marketing-Department}}";
        String accountId = "{{111122223333}}";

        try {
            // Create AWS resource tags.
            Tag resourceTag1 = Tag.builder()
                    .key("{{resource-tag-key-1}}")
                    .value("{{resource-tag-value-1}}")
                    .build();
            Tag resourceTag2 = Tag.builder()
                    .key("{{resource-tag-key-2}}")
                    .value("{{resource-tag-value-2}}")
                    .build();

            StorageLensGroupFilter suffixFilter = StorageLensGroupFilter.builder()
                    .matchAnySuffix("{{.png}}", "{{.gif}}", ".{{jpg}}")
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name({{storageLensGroupName}})
                    .filter(suffixFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup({{storageLensGroup}})
                    .tags({{resourceTag1}}, {{resourceTag2}})
                    .accountId({{accountId}}).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.{{US_WEST_2}})
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}
```

JSON 設定例については、「[Storage Lens グループの設定](storage-lens-groups.md#storage-lens-groups-configuration)」を参照してください。