

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 升级代理的设置
<a name="emr-spark-upgrade-agent-setup"></a>

**注意**  
Apache Spark 升级代理使用跨区域推理来处理自然语言请求并生成响应。欲了解更多详情，请参阅此页面[Apache Spark 升级代理的跨区域处理](emr-spark-upgrade-agent-cross-region.md)。Amazon SageMaker Unified Studio MCP 服务器处于预览状态，可能会发生变化。

## 先决条件
<a name="spark-upgrade-agent-prerequisites"></a>

在我们开始与 Kiro CLI 集成的设置过程之前，请确保您的工作站上安装了以下内容：
+  [安装 Amazon CLI](https://docs.amazonaws.cn/cli/latest/userguide/getting-started-install.html) 
+  [安装 Python 3.10\+](https://www.python.org/downloads/release/python-3100/) 
+  [安装适用于 [MCP 代理](https://github.com/aws/mcp-proxy-for-aws?tab=readme-ov-file)的`uv`软件包管理器](https://docs.astral.sh/uv/getting-started/installation/) Amazon
+  [安装 Kiro CLI](https://kiro.dev/docs/cli/) 
+ Amazon 配置的本地证书（通过 [Amazon CLI](https://docs.amazonaws.cn/cli/latest/userguide/cli-chap-configure.html)、环境变量或 IAM 角色）-用于本地操作，例如上传升级后的作业工件以执行 EMR 验证任务。

## 安装资源
<a name="spark-upgrade-agent-setup-resources"></a>

您可以使用 Amazon CloudFormation 模板为 MCP 服务器设置资源。这些模板是您应修改以满足要求的示例。该模板为升级过程创建了以下资源：
+ IAM 角色拥有调用 MCP 服务器的权限以及底层 EMR 平台升级过程所需的权限。
+ 用于上传升级项目的 Amazon S3 暂存存储桶和用于 Amazon S3 加密的可选 KMS 密钥。

选择下表中的 **Launch Stack (启动堆栈)** 按钮之一。这将在相应区域的主 Amazon CloudFormation 机上启动堆栈。


| Region | 启动 | 
| --- | --- | 
| 美国东部（弗吉尼亚州北部） |  [https://console.amazonaws.cn/cloudformation/home?region=us-east-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-east-1.s3.us-east-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=us-east-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-east-1.s3.us-east-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 美国东部（俄亥俄州） |  [https://console.amazonaws.cn/cloudformation/home?region=us-east-2#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-east-2.s3.us-east-2.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=us-east-2#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-east-2.s3.us-east-2.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 美国西部（俄勒冈州） |  [https://console.amazonaws.cn/cloudformation/home?region=us-west-2#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-west-2.s3.us-west-2.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=us-west-2#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-west-2.s3.us-west-2.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 欧洲（爱尔兰） |  [https://console.amazonaws.cn/cloudformation/home?region=eu-west-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-1.s3.eu-west-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=eu-west-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-1.s3.eu-west-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 亚太区域（东京） |  [https://console.amazonaws.cn/cloudformation/home?region=ap-northeast-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=ap-northeast-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-northeast-1.s3.ap-northeast-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 亚太地区（新加坡） |  [https://console.amazonaws.cn/cloudformation/home?region=ap-southeast-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-southeast-1.s3.ap-southeast-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=ap-southeast-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-southeast-1.s3.ap-southeast-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 亚太地区（悉尼） |  [https://console.amazonaws.cn/cloudformation/home?region=ap-southeast-2#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=ap-southeast-2#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 加拿大（中部） |  [https://console.amazonaws.cn/cloudformation/home?region=ca-central-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ca-central-1.s3.ca-central-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=ca-central-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ca-central-1.s3.ca-central-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 南美洲（圣保罗） |  [https://console.amazonaws.cn/cloudformation/home?region=sa-east-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-sa-east-1.s3.sa-east-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=sa-east-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-sa-east-1.s3.sa-east-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 欧洲地区（法兰克福） |  [https://console.amazonaws.cn/cloudformation/home?region=eu-central-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-central-1.s3.eu-central-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=eu-central-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-central-1.s3.eu-central-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 欧洲地区（斯德哥尔摩） |  [https://console.amazonaws.cn/cloudformation/home?region=eu-north-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-north-1.s3.eu-north-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=eu-north-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-north-1.s3.eu-north-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 欧洲地区（伦敦） |  [https://console.amazonaws.cn/cloudformation/home?region=eu-west-2#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-2.s3.eu-west-2.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=eu-west-2#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-2.s3.eu-west-2.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| Europe (Paris) |  [https://console.amazonaws.cn/cloudformation/home?region=eu-west-3#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-3.s3.eu-west-3.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=eu-west-3#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-3.s3.eu-west-3.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 亚太地区（首尔） |  [https://console.amazonaws.cn/cloudformation/home?region=ap-northeast-2#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=ap-northeast-2#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-northeast-2.s3.ap-northeast-2.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 
| 亚太地区（孟买） |  [https://console.amazonaws.cn/cloudformation/home?region=ap-south-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-south-1.s3.ap-south-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml](https://console.amazonaws.cn/cloudformation/home?region=ap-south-1#/stacks/new?stackName=spark-upgrade-mcp-setup&templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-south-1.s3.ap-south-1.amazonaws.com/cloudformation/spark-upgrade-mcp-setup.yaml)  | 

进入**指定堆栈详细信息**页面，输入**堆栈名称**。在 **Parameters**（参数）下输入其他信息。提供以下信息，然后继续创建堆栈。
+ **SparkUpgradeIAMRole名称**-用于 Spark 升级过程的 IAM 角色的名称
+ **启用 EMREC2**-启用 EMR-EC2 升级权限（默认值：true）
+ **启用 EMRServerless**-启用 EMR 无服务器升级权限（默认值：true）
+ **StagingBucketPath**-Amazon S3 暂存工件的路径（例如 s3://my bucket/spark-upgrade or my-bucket/spark-升级）。留空以自动生成新的存储桶
+ **uses3Encry** ption-为 Amazon S3 暂存存储桶启用 KMS 加密（默认：false，设置为 true 以使用 KMS 加密而不是默认 S3 加密）
+ **S3 KmsKeyArn**-（可选）用于 Amazon S3 存储桶加密的现有 KMS 密钥的 ARN。仅当 uses3Encryption 为真且您有带有 KMS 密钥的现有存储桶时才使用
+ **CloudWatchKmsKeyArn**-（可选）用于 CloudWatch 日志加密的现有 KMS 密钥的 ARN（仅限 EMR Serverless，默认加密留空）
+ **EMRServerlessS3 LogPath**-（可选）存储 EMR 无服务器应用程序日志的 S3 路径（例如 s3://my-bucket/emr-serverless-logs or my-bucket/emr 无服务器日志）。如果提供，则授予 IAM 角色对这些日志的读取权限以供分析。仅在 “启用” EMRServerless 为真时使用
+ **ExecutionRoleToGrantS3Acces** s-（可选）现有 EMR-ec2/EMR-Serverless 执行角色的 IAM 角色名称或 ARN，用于授予 Amazon S3 暂存存储桶访问权限。仅在创建新的暂存存储桶时适用。对于授予 EMR 任务执行角色访问暂存存储桶的权限非常有用。既支持简单角色名，也支持 ARNs 带路径。

您也可以下载并查看[ CloudFormation 模板](https://github.com/aws-samples/aws-emr-utilities/blob/03c20fece616de23ec0ea5389f0113a5bc65fc3a/utilities/apache-spark-agents/spark-upgrade-agent-cloudformation/spark-upgrade-mcp-setup.yaml)，指定上述选项，然后 CloudFormation 使用 CLI 命令自行启动模板，示例见下文：

```
# deploy the stack with CloudFormation CLI commands
aws cloudformation deploy \
  --template-file spark-upgrade-mcp-setup.yaml \
  --stack-name spark-mcp-setup \
  --region <your mcp server launch region> \
  --capabilities CAPABILITY_NAMED_IAM \
  --parameter-overrides \
    ExecutionRoleToGrantS3Access=<your EMR or EMR Serverless job execution role>


# retrieve the 1-line instruction to set the local environment variables, which will be used for the following MCP server configuration
aws cloudformation describe-stacks \
  --stack-name spark-mcp-setup \
  --region <your mcp server launch region> \
  --query "Stacks[0].Outputs[?OutputKey=='ExportCommand'].OutputValue" \
  --output text
```

打开 “输出” 选项卡（或从上面的 desc CloudFormation ribe-stacks CLI 命令中检索），复制单行`ExportCommand`指令，然后在本地环境中执行该指令。单行指令示例：

```
export SMUS_MCP_REGION=<your mcp server launch region> && export IAM_ROLE=arn:aws:iam::111122223333:role/spark-upgrade-role-xxxxxx && export STAGING_BUCKET_PATH=<your staging bucket path>
```

然后在本地运行以下命令来设置 IAM 配置文件和 MCP 服务器配置

```
# Step 1: Configure AWS CLI Profile  
aws configure set profile.spark-upgrade-profile.role_arn ${IAM_ROLE}  
aws configure set profile.spark-upgrade-profile.source_profile <AWS CLI Profile to assume the IAM role - ex: default>  
aws configure set profile.spark-upgrade-profile.region ${SMUS_MCP_REGION}  
  
# Step 2: if you are using Kiro CLI, use the following command to add the MCP configuration  
kiro-cli-chat mcp add \  
    --name "spark-upgrade" \  
    --command "uvx" \  
    --args "[\"mcp-proxy-for-aws@latest\",\"https://sagemaker-unified-studio-mcp.${SMUS_MCP_REGION}.api.aws/spark-upgrade/mcp\", \"--service\", \"sagemaker-unified-studio-mcp\", \"--profile\", \"spark-upgrade-profile\", \"--region\", \"${SMUS_MCP_REGION}\", \"--read-timeout\", \"180\"]" \  
    --timeout 180000\  
    --scope global
```

这应该更新`~/.kiro/settings/mcp.json`以包括下面的 MCP 服务器配置。

```
{  
  "mcpServers": {  
    "spark-upgrade": {  
      "type": "stdio",  
      "command": "uvx",  
      "args": [  
        "mcp-proxy-for-aws@latest",  
        "https://sagemaker-unified-studio-mcp.us-east-1.api.aws/spark-upgrade/mcp",  
        "--service",  
        "sagemaker-unified-studio-mcp",  
        "--profile",  
        "spark-upgrade-profile",  
        "--region",  
        "us-east-1",  
        "--read-timeout",  
        "180"  
      ],  
      "timeout": 180000,  
      "disabled": false  
    }  
  }  
}
```

有关不同 MCP 客户端（例如 Kiro、Cline 和）的配置指南，请参阅[使用升级代理](emr-spark-upgrade-agent-using.md)。 GitHub CoPilot