

# 在 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)