

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

# ワークフロータイプとアクティビティタイプの登録
<a name="features.registration"></a>

Amazon SWF では、使用する前にアクティビティタイプおよびワークフロータイプを登録する必要があります。ワークフローおよびアクティビティは、ワーカーに追加する実装で、フレームワークによって自動的に登録されます。このフレームワークは、ワークフローおよびアクティビティを実装するタイプを検索し、Amazon SWF でそれらを登録します。デフォルトでは、フレームワークはインターフェイス定義を使用して、ワークフロータイプおよびアクティビティタイプの登録オプションを推測します。`@WorkflowRegistrationOptions` 注釈または `@SkipRegistration` 注釈を使用するには、ワークフローインターフェイスが必要です。ワークフローワーカーは、`@WorkflowRegistrationOptions` 注釈を使用して設定されているすべてのワークフロータイプを登録します。同様に、`@ActivityRegistrationOptions`、または `@SkipRegistration` を使用して各メソッドに注釈を入れるか、これらのいずれかの注釈が `@Activities` インターフェイスに存在する必要があります。アクティビティワーカーは、`@ActivityRegistrationOptions` 注釈を適用して設定されているアクティビティタイプをすべて登録します。ワーカーのいずれかを開始すると、自動的に登録されます。`@SkipRegistration` 注釈を持つワークフローおよびアクティビティタイプは登録されていません。`@ActivityRegistrationOptions` および `@SkipRegistration` 注釈にはオーバーライドセマンティクスが含まれており、最も具体的なものはアクティビティタイプに適用されます。

Amazon SWF では、登録後にタイプを再登録または変更することはできません。フレームワークは、すべてのタイプを登録しようとしますが、そのタイプが既に登録されている場合は、再登録されず、エラーも報告されません。

登録済みの設定を変更する必要がある場合は、そのタイプの新しいバージョンを登録する必要があります。新しい実行を開始する際、または生成されたクライアントを使用するアクティビティを呼び出す際、登録された設定を上書きすることもできます。

登録するには、タイプ名といくつかの登録オプションが必要です。デフォルトの実装では、これらの項目を次のように判断します。

## ワークフロータイプ名とバージョン
<a name="features.registration.workflow"></a>

フレームワークは、ワークフローインターフェイスからワークフロータイプ名を決定します。デフォルトのワークフロータイプ名の形式は、{{{prefix}}}{{{name}}} です。{{{prefix}} は、`@Workflow` インターフェイスの名前に「.」がついたもの、{{{name}}} は、`@Execute` メソッドの名前に設定されます。前述の例のデフォルトのワークフロータイプ名は `MyWorkflow.startMyWF` です。デフォルト名は、`@Execute` メソッドの名前パラメータを使用して上書きできます。次の例のデフォルトのワークフロータイプ名は `startMyWF` です。名前の文字列を空欄にすることはできません。`@Execute` を使用して名前を上書きすると、フレームワークでプレフィックスは自動的に付加されません。独自の命名スキームを使用することができます。

ワークフローバージョンは、`@Execute` 注釈の `version` パラメータを使用して指定されます。デフォルトの `version` はないため、明示的に指定する必要があります。`version` は自由形式の文字列で、独自のバージョニングスキームを使用することができます。

## 通知名
<a name="features.registration.signal"></a>

シグナルの名前は、`@Signal` 注釈の名前パラメータを使用して指定されます。指定しない場合は、シグナルメソッドの名前にデフォルトで設定されます。

## アクティビティタイプ名とバージョン
<a name="features.registration.activity"></a>

フレームワークは、アクティビティインターフェイスからアクティビティタイプの名前を決定します。デフォルトのアクティビティタイプ名の形式は、{{{prefix}}}{{{name}}} です。{{{prefix}}} は、`@Activities` インターフェイスの名前に「.」がついたもの、{{{name}}} は、メソッド名に設定されます。デフォルトの {{{{prefix}}} は、アクティビティインターフェイスの `@Activities` 注釈で上書きできます。アクティビティメソッドで `@Activity` 注釈を使用して、アクティビティタイプ名を指定することもできます。`@Activity` を使用して名前を上書きすると、フレームワークでプレフィックスが付加されることはありません。独自の命名スキームを使用することができます。

 アクティビティバージョンは、`@Activities` 注釈のバージョンパラメータを使用して指定されます。このバージョンは、インターフェイスで定義されているすべてのアクティビティとして使用されているため、`@Activity` 注釈を使用してアクティビティ単位で上書きすることができます。

## デフォルトのタスクリスト
<a name="features.registration.defaulttasklist"></a>

デフォルトのタスクリストは、`@WorkflowRegistrationOptions` および `@ActivityRegistrationOptions` 注釈と、`defaultTaskList` パラメータを使用して設定できます。デフォルトでは、`USE_WORKER_TASK_LIST` に設定されます。これは、アクティビティタイプまたはワークフロータイプを登録するために使用されるワーカーオブジェクトで構成されたタスクリストを使用するようにフレームワークに指示する特殊な値です。これらの注釈を使用して、デフォルトタスクリストを `NO_DEFAULT_TASK_LIST` に設定し、デフォルトタスクリストを登録しないように選択することもできます。この設定は、実行時にタスクを指定する必要がある場合に使用できます。デフォルトタスクが登録されていない場合は、ワークフローの開始時にタスクリストを指定するか、生成されたクライアントの各メソッドオーバーロードで `StartWorkflowOptions` および `ActivitySchedulingOptions` パラメータを使用して、アクティビティメソッドを呼び出す必要があります。

## 他の登録オプション
<a name="features.registration.other"></a>

Amazon SWF API で許可されているすべてのワークフロータイプおよびアクティビティタイプの登録オプションは、フレームワークを通じて指定できます。

*ワークフロー*の登録オプションの詳細な一覧については、以下を参照してください。
+ [@Workflow](annotations.md#annotations-workflow)
+ [@Execute](annotations.md#annotations-execute)
+ [@WorkflowRegistrationOptions](annotations.md#annotations-workflowregistrationoptions)
+ [@Signal](annotations.md#annotations-signal)

*アクティビティ*の登録オプションの詳細な一覧については、以下を参照してください。
+ [@Activity](annotations.md#annotations-activity)
+ [@Activities](annotations.md#annotations-activities)
+ [@ActivityRegistrationOptions](annotations.md#annotations-activityregistration)

タイプの登録を完全に制御するには、「[ワーカーの拡張機能](running.md#running.workerextend)」を参照してください。