

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

# 建立和管理用法設定檔
<a name="start-usage-profiles-managing"></a>

## 建立 AWS Glue 用量設定檔
<a name="w2aac15c15c19b3"></a>

管理員應該建立用法設定檔，然後將其指派給各種使用者。建立用法設定檔時，可指定預設值，以及各種任務和工作階段參數的允許值範圍。必須為任務或互動式工作階段設定至少一個參數。您可以自訂未為任務提供參數值時要使用的預設值，和/或在使用者使用此描述檔時提供參數值時，設定範圍限制或一組允許的驗證值。

*預設值*是由管理員設定的最佳實務，以協助任務作者。當使用者建立新任務且未設定逾時值時，將會套用用法設定檔的預設逾時值。如果作者沒有設定檔，則會套用 AWS Glue 服務預設值，並儲存在任務的定義中。在執行時間， 會 AWS Glue 強制執行設定檔中設定的限制 （最小、最大、允許的工作者）。

 設定參數後，所有其他參數都是選用的。可針對任務或互動式工作階段自訂的參數如下：
+  **工作者數量** – 限制工作者數量，以避免過度使用運算資源。您可以設定預設值、最小值和最大值。最小值為 1。
+  **工作者類型** – 限制工作負載的相關工作者類型。您可以設定預設類型，並允許使用者設定檔的工作者類型。
+  **逾時**：定義任務或互動式工作階段在終止之前可執行和消耗資源的最長時間。設定逾時值以避免長時間執行的任務。

  您可以設定預設值、最小值和最大值，以分鐘為單位。最小值為 1 (分鐘)。雖然 AWS Glue 預設逾時為 2880 分鐘，但您可以在用量設定檔中設定任何預設值。

  最佳實務是設定 'default' 的值。如果使用者未設定任何值，則此值將用於建立任務或工作階段。
+  **閒置逾時**：定義在執行儲存格之後，互動式工作階段在逾時之前處於非活動狀態的分鐘數。定義互動式工作階段在工作完成後終止的閒置逾時值。閒置逾時範圍應在逾時限制內。

  您可以設定預設值、最小值和最大值，以分鐘為單位。最小值為 1 (分鐘)。雖然 AWS Glue 預設逾時為 2880 分鐘，但您可以在用量設定檔中設定任何預設值。

  最佳實務是設定 'default' 的值。如果使用者未設定任何值，則此值將用於建立工作階段。

**以管理員身分建立 AWS Glue 用量描述檔 （主控台）**

1. 在左側導覽功能表中，選擇**成本管理**。

1. 選擇**建立用法設定檔**。

1. 輸入用法設定檔的**用法設定檔名稱**。

1. 輸入可選說明，以協助其他人辨識用法設定檔的目的。

1. 在設定檔中定義至少一個參數。表單中的所有欄位都是參數。例如，工作階段閒置逾時最小值。

1. 定義套用至用法設定檔的任何選用標籤。

1. 選擇**儲存**。  
![\[在 AWS Glue中建立用法設定檔的管理員範例。\]](http://docs.aws.amazon.com/zh_tw/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_tw/glue/latest/dg/images/usage-profiles-4-edit.png)

**編輯用量描述檔 (AWS CLI)**
+ 輸入以下命令。使用相同的 `--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. 開啟 (Identity and Access Management) IAM 主控台。

1. 在左側導覽窗格中，選擇**使用者**或者**角色**。

1. 選擇使用者或角色。

1. 選擇 **Tags** (標籤) 索引標籤。

1. 選擇**新增標籤**

1. 新增**索引鍵**為 `glue:UsageProfile` 且**值**為用法設定檔名稱的標籤。

1. 選擇 **Save changes (儲存變更)**  
![\[將標籤新增至 IAM 角色的範例。\]](http://docs.aws.amazon.com/zh_tw/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_tw/glue/latest/dg/images/usage-profiles-3-view.png)
