

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

# Amazon EMR Serverless 入門
<a name="getting-started"></a>

本教學課程可協助您在部署範例 Spark 或 Hive 工作負載時開始使用 EMR Serverless。您將建立、執行和偵錯自己的應用程式。我們會在本教學課程的大部分部分顯示預設選項。

啟動 EMR Serverless 應用程式之前，請先完成下列任務。

**Topics**
+ [授予使用 EMR Serverless 的許可](#gs-permissions)
+ [準備 EMR Serverless 的儲存體](#gs-prepare-storage)
+ [建立 EMR Studio 以執行互動式工作負載](#gs-interactive)
+ [建立任務執行時間角色](#gs-runtime-role)
+ [從主控台開始使用 EMR Serverless](gs-console.md)
+ [從 入門 AWS CLI](gs-cli.md)

## 授予使用 EMR Serverless 的許可
<a name="gs-permissions"></a>

若要使用 EMR Serverless，您需要具有連接政策的使用者或 IAM 角色，以授予 EMR Serverless 的許可。若要建立使用者並將適當的政策連接到該使用者，請遵循 中的指示[授予許可](setting-up.md#setting-up-iam)。

## 準備 EMR Serverless 的儲存體
<a name="gs-prepare-storage"></a>

在本教學課程中，您將使用 S3 儲存貯體來存放使用 EMR Serverless 應用程式執行之範例 Spark 或 Hive 工作負載的輸出檔案和日誌。若要建立儲存貯體，請遵循《*Amazon Simple Storage Service 主控台使用者指南*》中[建立儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html)的指示。以新建立的儲存貯`amzn-s3-demo-bucket`體名稱取代 的任何進一步參考。

## 建立 EMR Studio 以執行互動式工作負載
<a name="gs-interactive"></a>

如果您想要使用 EMR Serverless 透過 EMR Studio 中託管的筆記本執行互動式查詢，則需要指定 S3 儲存貯體和[最低服務角色，EMR Serverless ](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-service-role.html#emr-studio-service-role-serverless)才能建立工作區。如需設定步驟，請參閱《*Amazon* [EMR 管理指南》中的設定 EMR Studio](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-studio-set-up.html)。如需互動式工作負載的詳細資訊，請參閱 [透過 EMR Studio 使用 EMR Serverless 執行互動式工作負載](interactive-workloads.md)。

## 建立任務執行時間角色
<a name="gs-runtime-role"></a>

EMR Serverless 中的任務執行會使用執行期角色，在執行期提供特定 AWS 服務 和資源的精細許可。在本教學課程中，公有 S3 儲存貯體會託管資料和指令碼。儲存貯`amzn-s3-demo-bucket`體存放輸出。

若要設定任務執行期角色，請先使用信任政策建立執行期角色，以便 EMR Serverless 可以使用新角色。接著，將所需的 S3 存取政策連接到該角色。下列步驟會引導您完成此程序。

------
#### [ Console ]

1. 導覽至位於 的 IAM 主控台[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在左側導覽窗格中選擇 **Policies** (政策)。

1. 選擇**建立政策**。

1. 建立新標籤會開啟**建立政策**頁面。選取**政策編輯器**做為 Json，並貼上下方的政策 JSON。
**重要**  
將以下政策`amzn-s3-demo-bucket`中的 取代為在 中建立的實際儲存貯體名稱[準備 EMR Serverless 的儲存體](#gs-prepare-storage)。這是 S3 存取的基本政策。如需更多任務執行時間角色範例，請參閱 [Amazon EMR Serverless 的任務執行期角色](security-iam-runtime-role.md)。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ReadAccessForEMRSamples",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::*.elasticmapreduce",
           "arn:aws:s3:::*.elasticmapreduce/*"
         ]
       },
       {
         "Sid": "FullAccessToOutputBucket",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:ListBucket",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket",
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       },
       {
         "Sid": "GlueCreateAndReadDataCatalog",
         "Effect": "Allow",
         "Action": [
           "glue:GetDatabase",
           "glue:CreateDatabase",
           "glue:GetDataBases",
           "glue:CreateTable",
           "glue:GetTable",
           "glue:UpdateTable",
           "glue:DeleteTable",
           "glue:GetTables",
           "glue:GetPartition",
           "glue:GetPartitions",
           "glue:CreatePartition",
           "glue:BatchCreatePartition",
           "glue:GetUserDefinedFunctions"
         ],
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

1. 選擇**下一步**以輸入政策的名稱，例如 `EMRServerlessS3AndGlueAccessPolicy`和 **建立政策** 

1. 在 IAM 主控台 的左側導覽窗格中，選擇**角色**。

1. 選擇建**立角色**。

1. 針對角色類型，選擇**自訂信任政策**並貼上下列信任政策。這可讓提交至 Amazon EMR Serverless 應用程式的任務 AWS 服務 代表您存取其他 。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": [
           "sts:AssumeRole"
         ],
         "Resource": "arn:aws:iam::123456789012:role/EMRServerlessExecutionRole",
         "Sid": "AllowSTSAssumerole"
       }
     ]
   }
   ```

------

1. 選擇**下一步**以導覽至**新增許可**頁面，然後選擇 **EMRServerlessS3AndGlueAccessPolicy**。

1. 在**名稱、檢閱和建立**頁面中，針對**角色名稱**輸入角色的名稱，例如 `EMRServerlessS3RuntimeRole`。若要建立此 IAM 角色，請選擇**建立角色**。

------
#### [ CLI ]

1. 建立名為 `emr-serverless-trust-policy.json` 的檔案，其中包含用於 IAM 角色的信任政策。檔案應包含下列政策。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "EMRServerlessTrustPolicy",
         "Action": [
           "sts:AssumeRole"
         ],
         "Effect": "Allow",
         "Resource": "arn:aws:iam::123456789012:role/EMRServerlessExecutionRole"
       }
     ]
   }
   ```

------

1. 建立名為 `EMRServerlessS3RuntimeRole` 的 IAM 角色。使用您在上一個步驟中建立的信任政策。

   ```
   aws iam create-role \
       --role-name EMRServerlessS3RuntimeRole \
       --assume-role-policy-document file://emr-serverless-trust-policy.json
   ```

   請注意輸出中的 ARN。您可以在任務提交期間使用新角色的 ARN，在此之後稱為 `job-role-arn`。

1. 建立名為 的檔案`emr-sample-access-policy.json`，以定義工作負載的 IAM 政策。這可讓讀取存取存放在公有 S3 儲存貯體中的指令碼和資料，以及讀取寫入存取 `amzn-s3-demo-bucket`。
**重要**  
將以下政策`amzn-s3-demo-bucket`中的 取代為在 中建立的實際儲存貯體名稱[準備 EMR Serverless 的儲存體](#gs-prepare-storage)。這是 Glue AWS 和 S3 存取的基本政策。如需更多任務執行時間角色範例，請參閱 [Amazon EMR Serverless 的任務執行期角色](security-iam-runtime-role.md)。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ReadAccessForEMRSamples",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::*.elasticmapreduce",
           "arn:aws:s3:::*.elasticmapreduce/*"
         ]
       },
       {
         "Sid": "FullAccessToOutputBucket",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:GetObject",
           "s3:ListBucket",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket",
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       },
       {
         "Sid": "GlueCreateAndReadDataCatalog",
         "Effect": "Allow",
         "Action": [
           "glue:GetDatabase",
           "glue:CreateDatabase",
           "glue:GetDataBases",
           "glue:CreateTable",
           "glue:GetTable",
           "glue:UpdateTable",
           "glue:DeleteTable",
           "glue:GetTables",
           "glue:GetPartition",
           "glue:GetPartitions",
           "glue:CreatePartition",
           "glue:BatchCreatePartition",
           "glue:GetUserDefinedFunctions"
         ],
         "Resource": [
           "*"
         ]
       }
     ]
   }
   ```

------

1. 使用您在**步驟 3 中建立的政策檔案來建立名為 的 IAM **`EMRServerlessS3AndGlueAccessPolicy`政策。請記下輸出中的 ARN，因為您將在下一個步驟中使用新政策的 ARN。

   ```
   aws iam create-policy \
       --policy-name EMRServerlessS3AndGlueAccessPolicy \
       --policy-document file://emr-sample-access-policy.json
   ```

   在輸出中記下新政策的 ARN。您將在下一個步驟`policy-arn`將其取代為 。

1. 將 IAM 政策`EMRServerlessS3AndGlueAccessPolicy`連接至任務執行期角色 `EMRServerlessS3RuntimeRole`。

   ```
   aws iam attach-role-policy \
       --role-name EMRServerlessS3RuntimeRole \
       --policy-arn policy-arn
   ```

------