

# AWS Glue でのワークフローの実行プロパティの取得と設定
<a name="workflow-run-properties-code"></a>

ワークフローの実行プロパティを使用して、AWS Glue ワークフローのジョブ間の状態を共有して管理します。デフォルトの実行プロパティは、ワークフローの作成時に設定できます。次に、ジョブの実行時に、ジョブは実行プロパティの値を取得して必要に応じて変更し、ワークフローの以降のジョブに対する入力として使用できます。ジョブが実行プロパティを変更した場合、新しい値が有効なのはワークフローの実行中に限られます。デフォルトの実行プロパティは影響を受けません。

AWS Glue ジョブがワークフローに含まれていない場合、これらのプロパティは設定されません。

次の Python コード例は抽出、変換、ロード (ETL) ジョブの一部で、ワークフローの実行プロパティを取得する方法を示しています。

```
import sys
import boto3
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from awsglue.context import GlueContext
from pyspark.context import SparkContext

glue_client = boto3.client("glue")
args = getResolvedOptions(sys.argv, ['JOB_NAME','WORKFLOW_NAME', 'WORKFLOW_RUN_ID'])
workflow_name = args['WORKFLOW_NAME']
workflow_run_id = args['WORKFLOW_RUN_ID']
workflow_params = glue_client.get_workflow_run_properties(Name=workflow_name,
                                        RunId=workflow_run_id)["RunProperties"]

target_database = workflow_params['target_database']
target_s3_location = workflow_params['target_s3_location']
```

次のコードは、`target_format` 実行プロパティを `'csv'` に設定することで続行します。

```
workflow_params['target_format'] = 'csv'
glue_client.put_workflow_run_properties(Name=workflow_name, RunId=workflow_run_id, RunProperties=workflow_params)
```

詳細については次を参照してください: 
+ [GetWorkflowRunProperties アクション (Python: get\$1workflow\$1run\$1properties)](aws-glue-api-workflow.md#aws-glue-api-workflow-GetWorkflowRunProperties)
+ [PutWorkflowRunProperties アクション (Python: put\$1workflow\$1run\$1properties)](aws-glue-api-workflow.md#aws-glue-api-workflow-PutWorkflowRunProperties)