

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

# 開始使用 AWS Glue 互動式工作階段
<a name="getting-started-glue-sm"></a>

在本指南中，您將了解如何在 SageMaker AI Studio Classic 中啟動 AWS Glue 互動式工作階段，並使用 Jupyter 魔術管理您的環境。

## Studio 或 Studio Classic 中 AWS Glue 互動式工作階段的許可
<a name="glue-sm-iam"></a>

本節列出在 Studio 或 Studio Classic 中執行 AWS Glue 互動式工作階段所需的政策，並說明如何進行設定。它特別詳細說明如何：
+ 將 `AwsGlueSessionUserRestrictedServiceRole` 受管政策連接至您的 SageMaker AI 執行角色。
+ 在您的 SageMaker AI 執行角色建立內嵌自訂政策。
+ 修改 SageMaker AI 執行角色的信任關係。

**將 `AwsGlueSessionUserRestrictedServiceRole` 管理的政策連接至執行角色**

1. 開啟 [IAM 主控台](https://console.aws.amazon.com/iam/)。

1. 在左側面板中選取**角色**。

1. 尋找您的使用者設定檔所使用的 Studio Classic 執行角色。如需如何檢視使用者設定檔的相關資訊，請參閱[檢視網域中的使用者設定檔](domain-user-profile-view.md)。

1. 選擇您的角色名稱，以存取角色摘要頁面。

1. 在**許可**索引標籤下，從**新增權限**下拉式功能表選取**連接政策**。

1. 選取 `AwsGlueSessionUserRestrictedServiceRole` 管理政策旁的核取方塊。

1. 選擇**連接政策**。

   摘要頁面會顯示您新增的管理策略。

   

**若要在您的執行角色建立內嵌自訂政策**

1. 在**新增許可**下拉式功能表中選取**建立內嵌政策**。

1. 選取 **JSON** 標籤。

1. 在下列政策複製並貼上。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "uniqueStatementId",
   
               "Effect": "Allow",
               "Action": [
   	     "iam:GetRole",
                   "iam:PassRole",
                   "sts:GetCallerIdentity"
               ],
               "Resource": "arn:aws:iam::*:role/GlueServiceRole*"
           }
       ]
   }
   ```

------

1. 選擇**檢閱政策**。

1. 輸入**名稱**，然後選擇**建立政策**。

   總結頁面會顯示您新增的自訂政策。

   

**修改執行角色的信任關係**

1. 選取**信任關係**標籤。

1. 選擇**編輯信任政策**。

1. 在下列政策複製並貼上。

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Effect": "Allow",
           "Principal": {
               "Service": [
                   "glue.amazonaws.com",
                   "sagemaker.amazonaws.com"
               ]
           },
           "Action": "sts:AssumeRole"
       }
   ]
   }
   ```

------

1. 選擇**更新政策**。

如果您需要存取其他 AWS 資源，可以新增其他角色和政策。如需您可以包含的其他角色和政策的說明，請參閱 AWS Glue 文件中的[使用 IAM 的互動式工作階段](https://docs.aws.amazon.com/glue/latest/dg/glue-is-security.html)。

## 標籤傳播
<a name="glue-sm-tag-propagation"></a>

標籤通常用於追蹤和分配成本、控制對工作階段的存取權，以及隔離資源等。若要了解如何使用標記將中繼資料新增至 AWS 資源，或有關常見使用案例的詳細資訊，請參閱[其他資訊](#more-information)。

您可以啟用 AWS 標籤自動傳播到從 Studio 或 Studio Classic UI 內建立的新 AWS Glue 互動式工作階段。從 Studio 或 Studio Classic 建立互動式工作階段時 AWS Glue ，連接到使用者設定檔或共用空間的任何[使用者定義標籤](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html)都會轉移到新的 AWS Glue 互動式工作階段。此外，Studio 和 Studio Classic 會自動將兩個 AWS產生的內部標籤 ((`sagemaker:user-profile-arn` 和 `sagemaker:domain-arn`) 或 (`sagemaker:shared-space-arn` 和 `sagemaker:domain-arn`)) 新增至從其 UI 建立的新 AWS Glue 互動式工作階段。您可以使用這些標籤，跨個別網域、使用者設定檔或空間彙總成本。

### 啟用標籤傳播
<a name="enable-propagation"></a>

若要啟用標籤自動傳播到新的 AWS Glue 互動式工作階段，請為您的 SageMaker AI 執行角色和與 AWS Glue 工作階段相關聯的 IAM 角色設定下列許可：

**注意**  
根據預設，與 AWS Glue 互動式工作階段相關聯的角色與 SageMaker AI 執行角色相同。您可以使用 `%iam_role` 魔術命令，為 AWS Glue 互動式工作階段指定不同的執行角色。如需有關可用於設定 AWS Glue 互動式工作階段的 Jupyter 魔術命令相關資訊，請參閱[在 Studio 或 Studio Classic 中設定您的 AWS Glue 互動式工作階段](#glue-sm-magics)。
+ *在您的 SageMaker AI 執行角色上*：建立新的內嵌政策，然後貼上下列 JSON 檔案。此政策授予執行角色許可，以描述 (`DescribeUserProfile`、`DescribeSpace`、`DescribeDomain`) 和列出在使用者設定檔、共用空間和 SageMaker AI 網域上設定的標籤 (`ListTag`)。

  ```
  {
      "Effect": "Allow",
      "Action": [
          "sagemaker:ListTags"
      ],
      "Resource": [
          "arn:aws:sagemaker:*:*:user-profile/*",
          "arn:aws:sagemaker:*:*:space/*"
      ]
  },
  {
      "Effect": "Allow",
      "Action": [
          "sagemaker:DescribeUserProfile"
      ],
      "Resource": [
          "arn:aws:sagemaker:*:*:user-profile/*"
      ]
  },
  {
      "Effect": "Allow",
      "Action": [
          "sagemaker:DescribeSpace"
      ],
      "Resource": [
          "arn:aws:sagemaker:*:*:space/*"
      ]
  }
  {
      "Effect": "Allow",
      "Action": [
          "sagemaker:DescribeDomain"
      ],
      "Resource": [
          "arn:aws:sagemaker:*:*:domain/*"
      ]
  }
  ```
+ *在 AWS Glue 工作階段的 IAM 角色*：建立新的內嵌政策，然後貼上下列 JSON 檔案。該政策授予您的角色許可，可以將標籤 (`TagResource`) 連接到工作階段，或是擷取其標籤清單 (`GetTags`)。

  ```
  {
      "Effect": "Allow",
      "Action": [
          "glue:TagResource",
          "glue:GetTags"
      ],
      "Resource": [
          "arn:aws:glue:*:*:session/*"
      ]
  }
  ```

**注意**  
套用這些許可時發生的失敗不會阻止建立 AWS Glue 互動式工作階段。您可以在 Studio 或 Studio Classic [CloudWatch](https://docs.aws.amazon.com//sagemaker/latest/dg/monitoring-cloudwatch.html) 日誌中找到失敗原因的詳細資訊。
您必須重新啟動 AWS Glue 互動式工作階段的核心，才能傳播標籤值的更新。

請務必遵循以下幾點：
+ 標籤連接至工作階段後，就無法透過傳播的方式移除。

  您可以透過 AWS CLI、 AWS Glue API 或 https：//[https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/) 從 AWS Glue 互動式工作階段移除標籤。例如，您可以使用 來移除標籤 AWS CLI，方法是提供工作階段的 ARN 和您要移除的標籤索引鍵，如下所示：

  ```
  aws glue untag-resource \
  --resource-arn arn:aws:glue:region:account-id:session:session-name \
  --tags-to-remove tag-key1,tag-key2
  ```
+ Studio 和 Studio Classic 會將兩個 AWS產生的內部標籤 ((`sagemaker:user-profile-arn` 和 `sagemaker:domain-arn`) 或 (`sagemaker:shared-space-arn` 和 `sagemaker:domain-arn`)) 新增至從其 UI 建立的新 AWS Glue 互動式工作階段。這些標籤會計入所有 AWS 資源上設定的 50 個標籤限制。`sagemaker:user-profile-arn` 與 `sagemaker:shared-space-arn` 皆包含它們所屬的網域 ID。
+ 以 `aws:`、 `AWS:`或任何大小寫字母組合做為索引鍵字首的標籤索引鍵不會傳播，並保留供 AWS 使用。

### 其他資訊
<a name="more-information"></a>

您可以參閱下列資源，取得更多資訊。
+ 若要了解如何使用標記將中繼資料新增至 AWS 資源，請參閱[標記 AWS 資源](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html)。
+ 如需使用標籤追蹤成本的相關資訊，請參閱 Studio 管理最佳實務中的[成本分析](https://docs.aws.amazon.com/whitepapers/latest/sagemaker-studio-admin-best-practices/cost-attribution.html)。
+ 如需 AWS Glue 根據標籤金鑰控制對 的存取的資訊，請參閱 [ABAC with AWS Glue](glue/latest/dg/security_iam_service-with-iam.html#security_iam_service-with-iam-tags)。

## 在 Studio 或 Studio Classic 上啟動 AWS Glue 互動式工作階段
<a name="glue-sm-launch"></a>

建立角色、政策和 SageMaker AI 網域後，您可以在 Studio 或 Studio Classic 啟動 AWS Glue 互動式工作階段。

1. 登入 SageMaker AI 主控台，網址為 [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)。

1. 從左側導覽窗格中，選擇 **Studio**。

1. 在 Studio 登陸頁面中，選取用於啟動 Studio 的網域和使用者設定檔。

1. 選擇**開啟 Studio** 並啟動 JupyterLab 或 Studio Classic 應用程式。

1. 在 Jupyter 檢視中，選擇**檔案**，然後依序選擇**新增**和**筆記本**。

1. 對於 Studio Classic 使用者：在**映像**下拉式功能表中，選取 **SparkAnalytics 1.0** 或 **SparkAnalytics 2.0**。在**核心**下拉式功能表中，選取 **Glue Spark** 或 **Glue Python [PySpark 與 Ray]**。選擇**選取**。

   對於 Studio 使用者，選取 **Glue Spark** 或 **Glue Python [PySpark and Ray]** 核心

1. (選用) 使用 Jupyter 魔術命令自訂您的環境。如需 Jupyter 魔術命令的更多相關資訊，請參閱 [在 Studio 或 Studio Classic 中設定您的 AWS Glue 互動式工作階段](#glue-sm-magics)。

1. 開始撰寫您的 Spark 資料處理指令碼。以下[筆記本](https://github.com/aws/amazon-sagemaker-examples/blob/main/use-cases/pyspark_etl_and_training/pyspark-etl-training.ipynb)展示了使用 AWS Glue 互動式工作階段、探索性資料分析、資料預先處理，以及最後使用 SageMaker AI 針對處理的資料訓練模型的大型資料集上的 ETL end-to-end工作流程。

## 在 Studio 或 Studio Classic 中設定您的 AWS Glue 互動式工作階段
<a name="glue-sm-magics"></a>

**注意**  
所有魔術組態都會在 AWS Glue 核心生命週期內轉移到後續工作階段。

您可以在 AWS Glue 互動式工作階段中使用 Jupyter 魔法來修改工作階段和組態參數。魔術命令是 Jupyter 儲存格開頭字首為 `%` 的簡短命令，它提供了快速簡便的方法幫助您控制環境。在您的 AWS Glue 互動式工作階段中，預設會為您設定下列魔法：


| 魔術命令 | 預設值 | 
| --- | --- | 
| %glue\$1version |  3.0  | 
| %iam\$1role |  *連接至 SageMaker AI 網域的執行角色*  | 
| %region |  您的區域  | 

您可以使用魔術命令進一步自訂環境。例如，如果您要將分配至任務的工作者數量從預設值 5 變更為 10，您可以指定 `%number_of_workers 10`。如果您要將工作階段設定為在閒置時間 10 分鐘後停止，而不是預設的 2880，您可以指定 `%idle_timeout 10`。

目前在 中可用的所有 Jupyter 魔術 AWS Glue 也可以在 Studio 或 Studio Classic 中使用。如需可用的 AWS Glue 魔術功能完整清單，請參閱[設定 AWS Glue Jupyter 和 AWS Glue Studio 筆記本的互動式工作階段](https://docs.aws.amazon.com/glue/latest/dg/interactive-sessions-magics.html)。