翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用した Apache Oozie ワークフローへの接続 AWS Schema Conversion Tool
AWS SCT コマンドラインインターフェイス (CLI) を使用して、Apache Oozie ワークフローを に変換できます AWS Step Functions。Apache Hadoop ワークロードを Amazon に移行したらEMR、 のネイティブサービスを使用してジョブ AWS クラウド をオーケストレーションできます。詳細については、「Apache Hadoop への接続」を参照してください。
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」を参照してください。
Apache Oozie をソースとして使用する場合の前提条件
を使用して AWS SCT Apache Oozie に接続するには、次の前提条件が必要ですCLI。
-
ステートマシンの定義を保存する Amazon S3 バケットを作成します。これらの定義を使用してステートマシンを設定できます。詳細については、「Amazon S3 ユーザーガイド」の「バケットの作成」を参照してください。
-
AmazonS3FullAccess
ポリシーを使用して AWS Identity and Access Management (IAM) ロールを作成します。 AWS SCT はこのIAMロールを使用して Amazon S3 バケットにアクセスします。 -
AWS シークレットキーとシー AWS クレットアクセスキーを書き留めます。 AWS アクセスキーの詳細については、「 ユーザーガイド」の「アクセスキーの管理IAM」を参照してください。
-
AWS 認証情報と Amazon S3 バケットに関する情報をグローバルアプリケーション設定 AWS のサービスプロファイルに保存します。次に、 AWS SCT はこの AWS サービスプロファイルを使用して AWS リソースを操作します。詳細については、「でのプロファイルの管理 AWS Schema Conversion Tool」を参照してください。
ソース Apache Oozie ワークフローを使用するには、ソースファイルの特定の構造 AWS SCT が必要です。各アプリケーションフォルダには job.properties
ファイルが含まれている必要があります。このファイルには、ジョブプロパティのキーと値のペアが含まれています。また、各アプリケーションフォルダにこの workflow.xml
ファイルが含まれている必要があります。このファイルには、ワークフローのアクションノードと制御フローノードが記述されています。
ソースとしての Apache Oozie への接続
以下の手順を使用して、Apache Oozie ソースファイルに接続します。
で Apache Oozie に接続するには AWS SCT CLI
-
新しい AWS SCT CLIスクリプトを作成するか、既存のシナリオテンプレートを編集します。例えば、
OozieConversionTemplate.scts
テンプレートをダウンロードして編集できます。詳細については、「CLI シナリオの取得」を参照してください。 -
AWS SCT アプリケーション設定を構成します。
次のコード例では、アプリケーション設定を保存し、プロジェクトにパスワードを保存できます。保存した設定は他のプロジェクトでも使用できます。
SetGlobalSettings -save: 'true' -settings: '{ "store_password": "true" }' /
-
新しい AWS SCT プロジェクトを作成します。
次のコード例では、
c:\sct
フォルダにoozie
プロジェクトを作成します。CreateProject -name: 'oozie' -directory: 'c:\sct' /
-
AddSource
コマンドを使用して、ソース Apache Oozie ファイルを含むフォルダをプロジェクトに追加します。vendor
パラメータのAPACHE_OOZIE
値は必ず使用してください。以下の必須のパラメータの値name
およびmappingsFolder
を指定します。次のコード例では、Apache Oozie を AWS SCT プロジェクトのソースとして追加します。この例では、
OOZIE
という名前のソースオブジェクトを作成します。このオブジェクト名を使用してマッピングルールを追加します。このコード例を実行すると、 AWS SCT はc:\oozie
フォルダを使用してソースファイルをプロジェクトにロードします。AddSource -name: 'OOZIE' -vendor: 'APACHE_OOZIE' -mappingsFolder: 'c:\oozie' /
Windows では、この例と以下の例を使用できます。
-
ConnectSource
コマンドを使用してソース Apache Oozie ファイルに接続します。前のステップで定義されたソースオブジェクトの名前を使用します。ConnectSource -name: 'OOZIE' -mappingsFolder: 'c:\oozie' /
-
CLI スクリプトを保存します。次に、 AWS Step Functions サービスの接続情報を追加します。
拡張パックで AWS Lambda 関数を使用するためのアクセス許可
がサポート AWS Step Functions していないソース関数の場合、 は拡張パック AWS SCT を作成します。この拡張パックには、ソース AWS Lambda 関数をエミュレートする 関数が含まれています。
この拡張パックを使用するには、次のアクセス許可を持つ AWS Identity and Access Management (IAM) ロールを作成します。
{ "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 が必要です。
{ "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::ACCOUNT_NUMBER:role/sct/*" ] }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:ListRolePolicies" ], "Resource": [ "arn:aws:iam::ACCOUNT_NUMBER:role/lambda_LoadParameterInitialStateRole", "arn:aws:iam::ACCOUNT_NUMBER:role/lambda_EvaluateJSPELExpressionsRole", "arn:aws:iam::ACCOUNT_NUMBER:role/stepFunctions_MigratedOozieWorkflowRole" ] }, { "Effect": "Allow", "Action": [ "lambda:GetFunction", "lambda:CreateFunction", "lambda:UpdateFunctionCode", "lambda:DeleteFunction" ], "Resource": [ "arn:aws:lambda:*:ACCOUNT_NUMBER:function:LoadParameterInitialState", "arn:aws:lambda:*:ACCOUNT_NUMBER:function:EvaluateJSPELExpressions" ] } ] }
ターゲット AWS Step Functions として に接続する
次の手順を使用して、ターゲット AWS Step Functions として に接続します。
AWS Step Functions で に接続するには AWS SCT CLI
-
Apache Oozie ソースファイルの接続情報を含むCLIスクリプトを開きます。
-
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 バケットへのパスを指定します。 -
ConnectTarget
コマンド AWS Step Functions を使用して に接続します。前のステップで定義されたターゲットオブジェクトの名前を使用します。次のコード例では、 AWS サービスプロファイルを使用して
AWS_STEP_FUNCTIONS
ターゲットオブジェクトに接続します。必ずprofile_name
プロファイルの名前を入力します。ConnectTarget -name: 'AWS_STEP_FUNCTIONS' -profile: '
profile_name
' / -
CLI スクリプトを保存します。次に、マッピングルールと移行コマンドを追加します。詳細については、「Oozie ワークフローの変換」を参照してください。