

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

# ストリーミングラベル付けジョブを作成する
<a name="sms-streaming-create-job"></a>

ストリーミングラベル付けジョブを使用すると、継続的に実行されているストリーミングラベル付けジョブに、個々のデータオブジェクトをリアルタイムで送信できます。ストリーミングラベル付けジョブを作成するには、[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html) リクエストの作成時に `InputConfig` パラメータに Amazon SNS の*入力トピック* ARN (`SnsTopicArn`) を指定します。ラベルデータをリアルタイムで受信する場合、必要に応じて、Amazon SNS *出力トピック*も作成し、`OutputConfig` でそれを指定できます。

**重要**  
Ground Truth ストリーミングラベル付けジョブを初めて使用する場合は、ストリーミングラベル付けジョブを作成する前に「[Ground Truth ストリーミングラベル付けジョブ](sms-streaming-labeling-job.md)」を確認することをお勧めします。Ground Truth ストリーミングラベル付けジョブは SageMaker API を通じてのみサポートされます。

次のセクションを使用して、ストリーミングラベル付けジョブの作成に必要かつ使用できるリソースを作成します。
+ Ground Truth ストリーミングラベル付けジョブに必要なアクセス許可を持つ SNS トピックを作成する方法については、「[データラベリングに Amazon SNS トピックを使用する](sms-create-sns-input-topic.md)」の手順に従ってください。SNS トピックは、ラベル付けジョブと同じ AWS リージョンで作成する必要があります。
+ ラベル付けタスクが完了するたびに、指定されたエンドポイントでラベル付けタスクの出力データを受信するようにエンドポイントを設定する方法については、「[エンドポイントを Amazon SNS 出力トピックにサブスクライブする](sms-create-sns-input-topic.md#sms-streaming-subscribe-output-topic)」を参照してください。
+ Amazon SNS 入力トピックに通知を送信するように Amazon S3 バケットを設定する方法については、「[ラベル付けジョブで定義された Amazon SNS に基づいて Amazon S3 ベースのバケットイベント通知を作成する](sms-streaming-s3-setup.md)」を参照してください。
+ 必要に応じて、ラベル付けジョブが開始されたらすぐに、ラベル付けするデータオブジェクトを入力マニフェストに追加します。詳細については、「[マニフェストファイルを作成する (オプション)](sms-streaming-manifest.md)」を参照してください。
+ IAM ロール、Amazon S3 バケット、ワーカータスクテンプレート、ラベルカテゴリなど、ラベル付けジョブを作成するために必要なその他のリソースがあります。これらは、ラベル付けジョブの作成に関する Ground Truth のドキュメントで説明されています。詳細については、「[ラベル付けジョブの作成](sms-create-labeling-job.md)」を参照してください。
**重要**  
ラベル付けジョブを作成する際、IAM 実行ロールを指定する必要があります。 AWS 管理ポリシー **AmazonSageMakerGroundTruthExecution** をこのロールにアタッチして、ラベル付けジョブを実行するために必要なアクセス許可があることを確認します。

ストリーミングラベル付けジョブを作成するリクエストを送信すると、ラベル付けジョブの状態は `Initializing` になります。ラベル付けジョブがアクティブになると、状態は `InProgress` に変わります。ラベル付けジョブの状態が `Initializing` である間は、新しいデータオブジェクトをラベル付けジョブに送信したり、停止したりしないでください。状態が `InProgress` に変わったら、Amazon SNS と Amazon S3 設定を使用して、新しいデータオブジェクトの送信を開始できます。

**Topics**
+ [データラベリングに Amazon SNS トピックを使用する](sms-create-sns-input-topic.md)
+ [ラベル付けジョブで定義された Amazon SNS に基づいて Amazon S3 ベースのバケットイベント通知を作成する](sms-streaming-s3-setup.md)
+ [マニフェストファイルを作成する (オプション)](sms-streaming-manifest.md)
+ [SageMaker API を使用してストリーミングラベル付けジョブを作成する](sms-streaming-create-labeling-job-api.md)
+ [ストリーミングラベル付けジョブを停止する](sms-streaming-stop-labeling-job.md)

# データラベリングに Amazon SNS トピックを使用する
<a name="sms-create-sns-input-topic"></a>

ストリーミングラベル付けジョブを作成するには、Amazon SNS 入力を作成する必要があります。必要に応じて、Amazon SNS 出力トピックを指定できます。

ストリーミングラベル付けジョブで使用する Amazon SNS トピックを作成するときは、トピックの Amazon リソースネーム (ARN) を書き留めます。ラベル付けジョブを作成するときの ARN は、`InputConfig` と `OutputConfig` の `SnsTopicArn` パラメータの入力値になります。

## 入力トピックを作成する
<a name="sms-streaming-input-topic"></a>

入力トピックは、新しいデータオブジェクトを Ground Truth に送信する際に使用されます。入力トピックの作成方法の詳細については、Amazon Simple Notification Service デベロッパーガイドの「[Amazon SNS トピックの作成](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)」を参照してください。

入力トピック ARN を書き留め、それを`InputConfig` の `CreateLabelingJob`パラメータ `SnsTopicArn` の入力として使用します。

## 出力トピックを作成する
<a name="sms-streaming-output-topic"></a>

出力トピックを指定すると、データオブジェクトがラベル付けされたときに通知を送信するために使用されます。トピックを作成するときに、暗号化キーを追加するオプションがあります。このオプションを使用して、 AWS Key Management Service カスタマーマネージドキーをトピックに追加し、ラベル付けジョブの出力データを出力トピックに発行する前に暗号化します。

出力トピックを作成するには、Amazon Simple Notification Service デベロッパーガイドの「[Amazon SNS トピックの作成](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html)」の手順に従います。

暗号化を追加する場合は、トピックに追加のアクセス許可をアタッチする必要があります。詳細については、「[出力トピックに暗号化を追加する (オプション)](#sms-streaming-encryption)」を参照してください。

**重要**  
コンソールでトピックを作成するときに、カスタマーマネージド型キーを出力トピックに追加するために、**(Default) alias/aws/sns** オプションを使用しないでください。作成したカスタマーマネージド型キーを選択します。

入力トピック ARN を書き留め、それを`OutputConfig` の `CreateLabelingJob`パラメータ `SnsTopicArn` に使用します。

### 出力トピックに暗号化を追加する (オプション)
<a name="sms-streaming-encryption"></a>

出力トピックに発行されたメッセージを暗号化するには、 AWS KMS カスタマーマネージド型キーをトピックに提供する必要があります。次のポリシーを変更し、それをカスタマーマネージド型キーに追加して、出力トピックに公開する前に出力データを暗号化する許可を Ground Truth に付与します。

*`<account_id>`* をトピックの作成に使用しているアカウント ID に置き換えます。 AWS アカウント ID を検索する方法については、[AWS 「アカウント ID の検索](https://docs.aws.amazon.com/IAM/latest/UserGuide/console_account-alias.html#FindingYourAWSId)」を参照してください。

------
#### [ JSON ]

****  

```
{
    "Id": "key-console-policy",
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Enable IAM User Permissions",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "kms:*",
            "Resource": "*"
        },
        {
            "Sid": "Allow access for Key Administrators",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:role/Admin"
            },
            "Action": [
                "kms:Create*",
                "kms:Describe*",
                "kms:Enable*",
                "kms:List*",
                "kms:Put*",
                "kms:Update*",
                "kms:Revoke*",
                "kms:Disable*",
                "kms:Get*",
                "kms:Delete*",
                "kms:TagResource",
                "kms:UntagResource",
                "kms:ScheduleKeyDeletion",
                "kms:CancelKeyDeletion"
            ],
            "Resource": "*"
        }
    ]
}
```

------

さらに、次のポリシーを変更して、ラベル付けジョブの作成に使用する実行ロール (`RoleArn` の入力値) に追加する必要があります。

*`<account_id>`* をトピックの作成に使用しているアカウント ID に置き換えます。*`<region>`* をラベル付けジョブの作成に使用している AWS のリージョンに置き換えます。`<key_id>` を、カスタマーマネージド型キー ID に置き換えます。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "sid1",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/your_key_id"
        }
    ]
}
```

------

キーの作成と保護の詳細については、「 AWS Key Management Service デベロッパーガイド」の[「キーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)」と[「キーポリシーの使用](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html)」を参照してください。

## エンドポイントを Amazon SNS 出力トピックにサブスクライブする
<a name="sms-streaming-subscribe-output-topic"></a>

ワーカーが Ground Truth ストリーミングラベル付けジョブからラベル付けジョブタスクを完了すると、Ground Truth は出力トピックを使用して、指定した 1 つ以上のエンドポイントに出力データを発行します。ワーカーがラベル付けタスクを完了したときに通知を受け取るには、エンドポイントを Amazon SNS 出力トピックにサブスクライブする必要があります。

エンドポイントを出力トピックに追加する方法の詳細については、*Amazon Simple Notification Service デベロッパーガイド*の「[Amazon SNS トピックへサブスクライブする](https://docs.aws.amazon.com/sns/latest/dg/sns-create-subscribe-endpoint-to-topic.html)」を参照してください。

これらのエンドポイントに発行される出力データ形式の詳細については、「[ラベル付けジョブの出力データ](sms-data-output.md)」を参照してください。

**重要**  
Amazon SNS 出力トピックにエンドポイントをサブスクライブしない場合、新しいデータオブジェクトがラベル付けされたときに通知は届きません。

# ラベル付けジョブで定義された Amazon SNS に基づいて Amazon S3 ベースのバケットイベント通知を作成する
<a name="sms-streaming-s3-setup"></a>

Amazon S3 バケットの変更、イベント通知は、Amazon S3 コンソール、API、言語固有の AWS SDKs、または のいずれかで有効になります AWS Command Line Interface。イベントでは、`CreateLabelingJob` リクエストの際に `InputConfig` パラメータで指定したのと同じ Amazon SNS 入力トピック ARN (`SnsTopicArn`) を使用する必要があります。

**Amazon S3 バケット通知と入力データを同じ Amazon S3 バケットにすることはできません**  
イベント通知を作成するときは、`OutputConfig` パラメータで `S3OutputPath` として指定したのと同じ Amazon S3 の場所を使用しないでください。2 つのバケットをリンクすると、不要なデータオブジェクトが Ground Truth によってラベル付けのために処理される可能性があります。

Amazon SNS トピックに送信するイベントの種類はユーザーが判断します。[オブジェクト作成イベント](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/enable-event-notifications.html#enable-event-notifications-types)を送信すると、Ground Truth がラベル付けジョブを作成します。

Amazon SNS 入力トピックに送信されるイベント構造は、[イベントメッセージ構造](https://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html)と同じ構造を使用してフォーマットされた JSON メッセージである必要があります。

Amazon S3 コンソール、 AWS SDK for .NET、 AWS および SDK for Java を使用して Amazon S3 バケットのイベント通知を設定する方法の例を確認するには、*Amazon Simple Storage Service ユーザーガイド*の[「Walkthrough: Configure a bucket for notifications (SNS topic or SQS queue)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ways-to-add-notification-config-to-bucket.html)」を参照してください。

Amazon EventBridge 通知はネイティブではサポートされていません。EventBridge ベースの通知を使用するには、[イベントメッセージ構造](https://docs.aws.amazon.com/AmazonS3/latest/dev/notification-content-structure.html)で使用される JSON 形式と一致するように出力形式を更新する必要があります。

# マニフェストファイルを作成する (オプション)
<a name="sms-streaming-manifest"></a>

ストリーミングラベル付けジョブを作成する場合、`CreateLabelingJob` の `ManifestS3Uri` で指定した入力マニフェストファイルにオブジェクト (イメージやテキストなど) を追加できる 1 回限りのオプションがあります。ストリーミングラベル付けジョブが開始された場合、オブジェクトの総数が `MaxConcurrentTaskCount` を超えると、これらのオブジェクトはワーカーに送信されるか Amazon SQS キューに追加されます。ワーカーがラベル付けタスクを完了すると、結果は、ラベル付けジョブを作成する際に指定した Amazon S3 パスに定期的に追加されます。出力データは、出力トピックをサブスクライブする任意のエンドポイントに送信されます。

ラベル付けする初期オブジェクトを提供する場合は、これらのオブジェクトを特定するマニフェストファイルを作成し、AmazonS3 に配置します。`InputConfig` 内の `ManifestS3Uri` で、このマニフェストファイルの S3 URI を指定します。

マニフェストファイルのフォーマット方法については、「[入力データ](sms-data-input.md)」を参照してください。SageMaker AI コンソールを使用してマニフェストファイルを自動的に生成するには (3D 点群タスクタイプではサポートされません)、「[ラベル付けジョブのデータ設定を自動化する](sms-console-create-manifest-file.md)」を参照してください。

# SageMaker API を使用してストリーミングラベル付けジョブを作成する
<a name="sms-streaming-create-labeling-job-api"></a>

以下は、米国東部 (バージニア北部) リージョンで、組み込みタスクタイプのラベル付けジョブを開始するのに使用できる [AWS Python SDK (Boto3) リクエスト](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_labeling_job)の例です。以下の各パラメータの詳細については、「[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html)」を参照してください。この API と関連する言語固有の SDK を使用してラベル付けジョブを作成する方法については、「[ラベル付けジョブを作成する (API)](https://docs.aws.amazon.com/sagemaker/latest/dg/sms-create-labeling-job-api.html)」を参照してください。

この例では、以下のパラメータに注意します。
+ `SnsDataSource`- このパラメータは、`InputConfig` と `OutputConfig` に表示され、Amazon SNS トピックの入力と出力をそれぞれ特定するために使用されます。ストリーミングラベル付けジョブを作成するには、Amazon SNS 入力トピックを指定する必要があります。必要に応じて、Amazon SNS 出力トピックも指定できます。
+ `S3DataSource` - このパラメータはオプションです。ラベル付けジョブの開始と同時にラベル付けするデータオブジェクトの入力マニフェストファイルを含める場合は、このパラメータを使用します。
+ [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-StoppingConditions](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateLabelingJob.html#sagemaker-CreateLabelingJob-request-StoppingConditions) — ストリーミングラベル付けジョブを作成する場合、このパラメータは無視されます。ストリーミングラベル付けジョブの停止の詳細については、「[ストリーミングラベル付けジョブを停止する](sms-streaming-stop-labeling-job.md)」を参照してください。
+ ストリーミングラベル付けジョブは、自動データラベリングをサポートしていません。`LabelingJobAlgorithmsConfig` パラメータは含めないでください。

```
response = client.create_labeling_job(
    LabelingJobName= 'example-labeling-job',
    LabelAttributeName='label',
    InputConfig={
        'DataSource': {
            'S3DataSource': {
                'ManifestS3Uri': 's3://bucket/path/manifest-with-input-data.json'
            },
            'SnsDataSource': {
                'SnsTopicArn': 'arn:aws:sns:us-east-1:123456789012:your-sns-input-topic'
            }
        },
        'DataAttributes': {
            'ContentClassifiers': [
                'FreeOfPersonallyIdentifiableInformation'|'FreeOfAdultContent',
            ]
        }
    },
    OutputConfig={
        'S3OutputPath': 's3://bucket/path/file-to-store-output-data',
        'KmsKeyId': 'string',
        'SnsTopicArn': 'arn:aws:sns:us-east-1:123456789012:your-sns-output-topic'
    },
    RoleArn='arn:aws:iam::*:role/*',
    LabelCategoryConfigS3Uri='s3://bucket/path/label-categories.json',
    HumanTaskConfig={
        'WorkteamArn': 'arn:aws:sagemaker:us-east-1:*:workteam/private-crowd/*',
        'UiConfig': {
            'UiTemplateS3Uri': 's3://bucket/path/custom-worker-task-template.html'
        },
        'PreHumanTaskLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:PRE-tasktype',
        'TaskKeywords': [
            'Example key word',
        ],
        'TaskTitle': 'Multi-label image classification task',
        'TaskDescription': 'Select all labels that apply to the images shown',
        'NumberOfHumanWorkersPerDataObject': 123,
        'TaskTimeLimitInSeconds': 123,
        'TaskAvailabilityLifetimeInSeconds': 123,
        'MaxConcurrentTaskCount': 123,
        'AnnotationConsolidationConfig': {
            'AnnotationConsolidationLambdaArn': 'arn:aws:lambda:us-east-1:432418664414:function:ACS-tasktype'
            }
        },
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ]
)
```

# ストリーミングラベル付けジョブを停止する
<a name="sms-streaming-stop-labeling-job"></a>

[StopLabelingJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_StopLabelingJob.html) オペレーションを使用して、ストリーミングラベル付けジョブを手動で停止できます。

ラベル付けジョブが 10 日以上アイドル状態のままである場合は、Ground Truth によって自動的に停止されます。このコンテキストでは、Amazon SNS 入力トピックにオブジェクトが送信されず、ラベル付けを待機しているオブジェクトが Amazon SQS キューに残っていない場合、ラベル付けジョブは*アイドル状態*であると見なされます。例えば、Amazon SNS 入力トピックにデータオブジェクトが供給されておらず、ラベル付けジョブに供給されたすべてのオブジェクトが既にラベル付けされている場合、GroundTruth はタイマーを開始します。タイマーの開始後、10 日以内にアイテムが受け取られない場合、ラベル付けジョブは停止します。

ラベル付けジョブが停止すると、Ground Truth はジョブリソースのラベル付けをクリーンアップする間、そのステータスは `STOPPING` になり、Amazon SQS キューから Amazon SNS トピックのサブスクライブを解除します。このキューには未処理のデータオブジェクトが含まれている可能性があるため、Amazon SQS が Ground Truth によって削除されることは*ありません*。Amazon SQS で追加料金が発生しないようにするには、キューを手動で削除する必要があります。詳細については、「[Amazon SQS の料金](https://aws.amazon.com/sqs/pricing/)」を参照してください。