

# 创建和管理使用情况配置文件
<a name="start-usage-profiles-managing"></a>

## 创建 AWS Glue 使用情况配置文件
<a name="w2aac15c15c19b3"></a>

管理员应创建使用情况配置文件，然后将其分配给不同的用户。创建使用情况配置文件时，您可以为各种任务和会话参数指定默认值以及允许值的范围。您必须为任务或交互式会话配置至少一个参数。如果没有为任务提供参数值，您可以自定义要使用的默认值，并且/或者如果用户在使用此配置文件时提供了参数值，则可以设置范围限制或一组允许的值用于验证。

*默认值*是管理员为帮助任务作者而设置的最佳实践。当用户创建新任务但未设置超时值时，系统将应用使用情况配置文件的默认超时值。如果作者没有配置文件，系统将应用 AWS Glue 服务默认值并将此值保存在任务定义中。在运行时，AWS Glue 会强制执行配置文件中设置的限制（最小值、最大值、允许的工作线程数）。

 配置参数后，所有其他参数均为可选。可以为任务或交互式会话自定义的参数如下：
+  **工作线程数量** – 限制工作线程的数量，以免过度使用计算资源。您可以设置默认值、最小值和最大值。最小值为 1。
+  **工作线程类型** – 限制工作负载的相关工作线程类型。可以为用户配置文件设置默认类型并允许工作线程类型。
+  **超时** – 定义任务或交互式会话在终止前可以运行和使用资源的最长时间。设置超时值，以免长时间运行任务。

  您可以设置默认值、最小值和最大值（单位为分钟）。最小值为 1（单位为分钟）。虽然 AWS Glue 默认超时时间为 2880 分钟，但您可以在使用情况配置文件中设置任何默认值。

  最佳实践是设置一个“默认”值。如果用户未设置任何值，则此值将用于创建任务或会话。
+  **空闲超时** – 定义在单元格运行后，交互式会话需要处于非活动状态多少分钟才会超时。定义交互式会话的空闲超时时间，以便在工作完成后终止会话。空闲超时范围应在超时限制范围内。

  您可以设置默认值、最小值和最大值（单位为分钟）。最小值为 1（单位为分钟）。虽然 AWS Glue 默认超时时间为 2880 分钟，但您可以在使用情况配置文件中设置任何默认值。

  最佳实践是设置一个“默认”值。如果用户未设置任何值，则此值将用于创建会话。

**以管理员身份创建 AWS Glue 使用情况配置文件（控制台）**

1. 在左侧导航菜单中，选择**成本管理**。

1. 选择**创建使用情况配置文件**。

1. 对于使用情况配置文件，输入**使用情况配置文件名称**。

1. 输入可选描述，以帮助其他人识别使用情况配置文件的用途。

1. 在配置文件中，至少定义以下参数之一。表单中的任何字段都属于参数。例如会话空闲超时最小值。

1. 定义适用于使用情况配置文件的所有可选标签。

1. 选择**保存**。  
![\[管理员在 AWS Glue 中创建使用情况配置文件的示例。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/usage-profiles-2-create.png)

**创建用户配置文件（AWS CLI）**

1. 输入以下命令。

   ```
   aws glue create-usage-profile --name profile-name --configuration file://config.json --tags list-of-tags
   ```

   其中 config.json 可以定义交互式会话 (`SessionConfiguration`) 和任务 (`JobConfiguration`) 的参数值：

   ```
   //config.json (There is a separate blob for session/job configuration
   {
       "SessionConfiguration": {
           "timeout": {
               "DefaultValue": "2880",
               "MinValue": "100",
               "MaxValue": "4000"
           },
           "idleTimeout": {
               "DefaultValue": "30",
               "MinValue": "10",
               "MaxValue": "4000"
           },
           "workerType": {
               "DefaultValue": "G.2X",
               "AllowedValues": [
                   "G.1X",
                   "G.2X",
                   "G.4X",
                   "G.8X",
                   "G.12X",
                   "G.16X",
                   "R.1X",
                   "R.2X",
                   "R.4X",
                   "R.8X"
               ]
           },
           "numberOfWorkers": {
               "DefaultValue": "10",
               "MinValue": "1",
               "MaxValue": "10"
           }
       },
       "JobConfiguration": {
           "timeout": {
               "DefaultValue": "2880",
               "MinValue": "100",
               "MaxValue": "4000"
           },
           "workerType": {
               "DefaultValue": "G.2X",
               "AllowedValues": [
                   "G.1X",
                   "G.2X",
                   "G.4X",
                   "G.8X",
                   "G.12X",
                   "G.16X",
                   "R.1X",
                   "R.2X",
                   "R.4X",
                   "R.8X"
               ]
           },
           "numberOfWorkers": {
               "DefaultValue": "10",
               "MinValue": "1",
               "MaxValue": "10"
           }
       }
   }
   ```

1. 输入以下命令，查看创建的使用情况配置文件：

   ```
   aws glue get-usage-profile --name profile-name
   ```

   响应：

   ```
   {
       "ProfileName": "foo",
       "Configuration": {
           "SessionConfiguration": {
               "numberOfWorkers": {
                   "DefaultValue": "10",
                   "MinValue": "1",
                   "MaxValue": "10"
               },
               "workerType": {
                   "DefaultValue": "G.2X",
                   "AllowedValues": [
                       "G.1X",
                       "G.2X",
                       "G.4X",
                       "G.8X",
                       "G.12X",
                       "G.16X",
                       "R.1X",
                       "R.2X",
                       "R.4X",
                       "R.8X"
                   ]
               },
               "timeout": {
                   "DefaultValue": "2880",
                   "MinValue": "100",
                   "MaxValue": "4000"
               },
               "idleTimeout": {
                   "DefaultValue": "30",
                   "MinValue": "10",
                   "MaxValue": "4000"
               }
           },
           "JobConfiguration": {
               "numberOfWorkers": {
                   "DefaultValue": "10",
                   "MinValue": "1",
                   "MaxValue": "10"
               },
               "workerType": {
                   "DefaultValue": "G.2X",
                   "AllowedValues": [
                       "G.1X",
                       "G.2X",
                       "G.4X",
                       "G.8X",
                       "G.12X",
                       "G.16X",
                       "R.1X",
                       "R.2X",
                       "R.4X",
                       "R.8X"
                   ]
               },
               "timeout": {
                   "DefaultValue": "2880",
                   "MinValue": "100",
                   "MaxValue": "4000"
               }
           }
       },
       "CreatedOn": "2024-01-19T23:15:24.542000+00:00"
   }
   ```

用于管理使用情况配置文件的其他 CLI 命令：
+ aws glue list-usage-profiles
+ aws glue update-usage-profile --name *profile-name* --configuration *file://config.json*
+ aws glue delete-usage-profile --name *profile-name*

## 编辑使用情况配置文件
<a name="w2aac15c15c19b5"></a>

管理员可以编辑已创建的使用情况配置文件，以此更改任务和交互式会话的配置文件参数值。

要编辑使用情况配置文件，请执行以下操作：

**以管理员身份编辑 AWS Glue 使用情况配置文件（控制台）**

1. 在左侧导航菜单中，选择**成本管理**。

1. 选择您有权编辑的使用情况配置文件，然后选择**编辑**。

1. 根据需要对配置文件进行更改。默认情况下，已设定值的参数会被展开。

1. 选择**保存编辑**。  
![\[用户在 AWS Glue 中编辑使用情况配置文件的示例。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/usage-profiles-4-edit.png)

**编辑使用情况配置文件（AWS CLI）**
+ 输入以下命令。使用与上文所示的 create 命令相同的 `--configuration` 文件语法。

  ```
  aws glue update-usage-profile --name profile-name --configuration file://config.json
  ```

  其中 config.json 定义了交互式会话 (`SessionConfiguration`) 和任务 (`JobConfiguration`) 的参数值：

## 分配使用情况配置文件
<a name="w2aac15c15c19b7"></a>

**使用情况配置文件**页面中的**利用率状态**列显示是否向用户分配了使用情况配置文件。将鼠标悬停在状态上会显示分配的 IAM 实体。

管理员可以向创建 AWS Glue 资源的用户/角色分配 AWS Glue 使用情况配置文件。分配配置文件包含以下两个操作：
+ 使用 `glue:UsageProfile` 密钥更新 IAM 用户/角色标签，然后
+ 更新用户/角色的 IAM 策略。

对于使用 AWS Glue Studio 创建任务/交互式会话的用户，管理员会标记以下角色：
+ 对于任务的限制，管理员会标记已登录的控制台角色
+ 对于交互式会话的限制，管理员会标记用户在创建笔记本时提供的角色

以下是管理员需要更新的关于 AWS Glue 资源的创建者 IAM 用户/角色的策略示例：

```
{
    "Effect": "Allow",
    "Action": [
        "glue:GetUsageProfile"
    ],
    "Resource": [
        "arn:aws:glue:us-east-1:123456789012:usageProfile/foo"
    ]
}
```

AWS Glue 会根据 AWS Glue 使用情况配置文件中指定的值验证任务、任务运行和会话请求，如果不允许请求，则会引发异常。对于同步 API，将向用户抛出错误。对于异步路径，会创建失败的任务运行，并显示错误消息，提示输入参数超出了为用户/角色分配的配置文件所允许的范围。

要为用户/角色分配使用情况配置文件，请执行以下操作：

1. 打开 IAM（Identity and Access Management）控制台。

1. 在左侧导航中，选择**角色**或**用户**。

1. 选择用户或角色。

1. 选择**标签**选项卡。

1. 选择**添加新标签**。

1. 添加标签，其中**键**为 `glue:UsageProfile`，**值**为使用情况配置文件名称。

1. 选择 **Save changes**（保存更改）  
![\[向 IAM 角色添加标签的示例。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/usage-profiles-iam-role-tagged.png)

## 查看分配给自己的使用情况配置文件
<a name="w2aac15c15c19b9"></a>

用户可以查看向其分配的使用情况配置文件，并在进行 API 调用以创建 AWS Glue 任务和会话资源时，或在启动任务时使用这些配置文件。

IAM 策略中提供了配置文件权限。只要调用者策略具有 `glue:UsageProfile` 权限，用户就可以查看配置文件。否则，您将收到拒绝被访问的错误。

要查看分配给自己的使用情况配置文件，请执行以下操作：

1. 在左侧导航菜单中，选择**成本管理**。

1. 选择您有权查看的使用情况配置文件。

![\[用户在 AWS Glue 中查看向其分配的使用情况配置文件的示例。\]](http://docs.aws.amazon.com/zh_cn/glue/latest/dg/images/usage-profiles-3-view.png)
