

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 AWS Glue 中取得及設定工作流程執行屬性
<a name="workflow-run-properties-code"></a>

在您的 AWS Glue 工作流程中，使用工作流程回合屬性在任務中共享和管理狀態。您可以在建立工作流程時設定預設回合屬性。然後，當任務執行時，它們可以擷取回合屬性值並選擇性修改它們，供後續工作流程中的任務輸入使用。當任務修改回合屬性時，只有工作流程回合有新的值。預設的執行屬性不會受到影響。

如果您的 AWS Glue 任務不是工作流程的一部分，則不會設定這些屬性。

以下來自擷取、轉換和載入 (ETL) 任務的範本 Python 程式碼，會示範如何取得工作流程回合屬性。

```
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)