

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

# を使用した Apache Oozie ワークフローへの接続 AWS Schema Conversion Tool
<a name="CHAP_Source.Oozie"></a>

 AWS SCT コマンドラインインターフェイス (CLI) を使用して、Apache Oozie ワークフローを に変換できます AWS Step Functions。Apache Hadoop ワークロードを Amazon EMR に移行すると、 のネイティブサービスを使用してジョブを AWS クラウド オーケストレーションできます。詳細については、「[Apache Hadoop への接続](CHAP_Source.Hadoop.md)」を参照してください。

AWS SCT は Oozie ワークフローを に変換 AWS Step Functions し AWS Lambda 、 を使用して がサポート AWS Step Functions していない機能をエミュレートします。また、 は Oozie ジョブのプロパティを AWS SCT に変換します AWS Systems Manager。

Apache Oozie ワークフローを変換するには、 AWS SCT バージョン 1.0.671 以降を使用していることを確認してください。また、 AWS SCTのコマンドラインインターフェイスにも慣れておいてください。詳細については、「[の CLI リファレンス AWS Schema Conversion Tool](CHAP_Reference.md)」を参照してください。

## Apache Oozie をソースとして使用する場合の前提条件
<a name="CHAP_Source.Oozie.Prerequisites"></a>

 AWS SCT CLI を使用して Apache Oozie に接続するには、以下の前提条件を満たす必要があります。
+ ステートマシンの定義を保存する Amazon S3 バケットを作成します。これらの定義を使用してステートマシンを設定できます。詳細については、「*Amazon S3 ユーザーガイド*」の「[バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。
+ `AmazonS3FullAccess` ポリシーを使用して AWS Identity and Access Management (IAM) ロールを作成します。 AWS SCT はこの IAM ロールを使用して Amazon S3 バケットにアクセスします。
+  AWS シークレットキーと AWS シークレットアクセスキーを書き留めます。 AWS アクセスキーの詳細については、*IAM ユーザーガイド*の[「アクセスキーの管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)」を参照してください。
+  AWS 認証情報と Amazon S3 バケットに関する情報をグローバルアプリケーション設定 AWS のサービスプロファイルに保存します。次に、 AWS SCT はこの AWS サービスプロファイルを使用して AWS リソースを操作します。詳細については、「[でのプロファイルの管理 AWS Schema Conversion Tool](CHAP_UserInterface.Profiles.md)」を参照してください。

ソース Apache Oozie ワークフローを使用するには、ソースファイルの特定の構造 AWS SCT が必要です。各アプリケーションフォルダには `job.properties` ファイルが含まれている必要があります。このファイルには、ジョブプロパティのキーと値のペアが含まれています。また、各アプリケーションフォルダにこの `workflow.xml` ファイルが含まれている必要があります。このファイルには、ワークフローのアクションノードと制御フローノードが記述されています。

## ソースとしての Apache Oozie への接続
<a name="CHAP_Source.Oozie.Connecting"></a>

以下の手順を使用して、Apache Oozie ソースファイルに接続します。

**CLI で Apache Oozie AWS SCT に接続するには**

1. 新しい CLI AWS SCT スクリプトを作成するか、既存のシナリオテンプレートを編集します。例えば、`OozieConversionTemplate.scts` テンプレートをダウンロードして編集できます。詳細については、「[CLI シナリオの取得](CHAP_Reference.md#CHAP_Reference.Scenario)」を参照してください。

1.  AWS SCT アプリケーション設定を構成します。

   次のコード例では、アプリケーション設定を保存し、プロジェクトにパスワードを保存できます。保存した設定は他のプロジェクトでも使用できます。

   ```
   SetGlobalSettings
       -save: 'true'
       -settings: '{
           "store_password": "true"
       }'
   /
   ```

1. 新しい AWS SCT プロジェクトを作成します。

   次のコード例では、`c:\sct` フォルダに `oozie` プロジェクトを作成します。

   ```
   CreateProject
       -name: 'oozie'
       -directory: 'c:\sct'
   /
   ```

1. `AddSource` コマンドを使用して、ソース Apache Oozie ファイルを含むフォルダをプロジェクトに追加します。`vendor` パラメータの `APACHE_OOZIE` 値は必ず使用してください。以下の必須のパラメータの値 `name` および `mappingsFolder` を指定します。

   次のコード例では、Apache Oozie を AWS SCT プロジェクトのソースとして追加します。この例では、`OOZIE` という名前のソースオブジェクトを作成します。このオブジェクト名を使用してマッピングルールを追加します。このコード例を実行すると、 は `c:\oozie`フォルダ AWS SCT を使用してソースファイルをプロジェクトにロードします。

   ```
   AddSource
       -name: 'OOZIE'
       -vendor: 'APACHE_OOZIE'
       -mappingsFolder: 'c:\oozie'
   /
   ```

   Windows では、この例と以下の例を使用できます。

1. `ConnectSource` コマンドを使用してソース Apache Oozie ファイルに接続します。前のステップで定義されたソースオブジェクトの名前を使用します。

   ```
   ConnectSource
       -name: 'OOZIE'
       -mappingsFolder: 'c:\oozie'
   /
   ```

1. CLI スクリプトを保存します。次に、 AWS Step Functions サービスの接続情報を追加します。

## 拡張機能パックで AWS Lambda 関数を使用するためのアクセス許可
<a name="CHAP_Source.Oozie.TargetPrerequisites"></a>

がサポート AWS Step Functions していないソース関数の場合、 は拡張パック AWS SCT を作成します。この拡張パックには、ソース AWS Lambda 関数をエミュレートする 関数が含まれています。

この拡張パックを使用するには、次のアクセス許可を持つ AWS Identity and Access Management (IAM) ロールを作成します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "lambda",
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:498160209112:function:LoadParameterInitialState:*",
                "arn:aws:lambda:*:498160209112:function:EvaluateJSPELExpressions:*"
            ]
        },
        {
            "Sid": "emr",
            "Effect": "Allow",
            "Action": [
                "elasticmapreduce:DescribeStep",
                "elasticmapreduce:AddJobFlowSteps"
            ],
            "Resource": [
                "arn:aws:elasticmapreduce:*:498160209112:cluster/*"
            ]
        },
        {
            "Sid": "s3",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject"
            ],
            "Resource": [
                "arn:aws:s3:::*/*"
            ]
        }
    ]
}
```

------

拡張機能パックを適用するには、次のアクセス許可を持つ IAM ロール AWS SCT が必要です。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListRolePolicies",
                "iam:CreateRole",
                "iam:TagRole",
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy",
                "iam:DeleteRole",
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}:role/sct/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListRolePolicies"
            ],
            "Resource": [
                "arn:aws:iam::{{111122223333}}:role/lambda_LoadParameterInitialStateRole",
                "arn:aws:iam::{{111122223333}}:role/lambda_EvaluateJSPELExpressionsRole",
                "arn:aws:iam::{{111122223333}}:role/stepFunctions_MigratedOozieWorkflowRole"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "lambda:GetFunction",
                "lambda:CreateFunction",
                "lambda:UpdateFunctionCode",
                "lambda:DeleteFunction"
            ],
            "Resource": [
                "arn:aws:lambda:*:{{111122223333}}:function:LoadParameterInitialState",
                "arn:aws:lambda:*:{{111122223333}}:function:EvaluateJSPELExpressions"
            ]
        }
    ]
}
```

------

## ターゲット AWS Step Functions として に接続する
<a name="CHAP_Source.Oozie.Target"></a>

ターゲット AWS Step Functions として に接続するには、次の手順に従います。

**CLI AWS Step Functions で AWS SCT に接続するには**

1. Apache Oozie ソースファイルの接続情報を含む CLI スクリプトを開きます。

1. `AddTarget` コマンドを使用して、移行ターゲットに関する情報を AWS SCT プロジェクトに追加します。`vendor` パラメータの `STEP_FUNCTIONS` 値は必ず使用してください。以下の必須のパラメータの値 `name` および `profile` を指定します。

   次のコード例では、 を AWS SCT プロジェクト内のソース AWS Step Functions として追加します。この例では、`AWS_STEP_FUNCTIONS` という名前のターゲットオブジェクトを作成します。マッピングルールを作成するときには、このオブジェクト名を使用してください。また、この例では、前提条件ステップで作成した AWS SCT サービスプロファイルを使用します。{{profile\_name}} は必ず自分のプロファイルの名前に置き換えてください。

   ```
   AddTarget
       -name: 'AWS_STEP_FUNCTIONS'
       -vendor: 'STEP_FUNCTIONS'
       -profile: '{{profile_name}}'
   /
   ```

    AWS サービスプロファイルを使用しない場合は、、`accessKey`、`secretKey`、`awsRegion`および の必須パラメータの値を指定してください`s3Path`。これらのパラメータを使用して、 AWS シークレットアクセスキー、 AWS シークレットキー、 AWS リージョン、および Amazon S3 バケットへのパスを指定します。

1. `ConnectTarget` コマンド AWS Step Functions を使用して に接続します。前のステップで定義されたターゲットオブジェクトの名前を使用します。

   次のコード例では、 AWS サービスプロファイルを使用して `AWS_STEP_FUNCTIONS` ターゲットオブジェクトに接続します。{{profile\_name}} は必ず自分のプロファイルの名前に置き換えてください。

   ```
   ConnectTarget
       -name: 'AWS_STEP_FUNCTIONS'
       -profile: '{{profile_name}}'
   /
   ```

1. CLI スクリプトを保存します。次に、マッピングルールと移行コマンドを追加します。詳細については、「[Oozie ワークフローの変換](big-data-oozie.md)」を参照してください。