

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

# 步骤 1：创建 Amazon S3 存储桶，下载所需的工具并配置环境
步骤 1：创建 Amazon S3 存储桶、下载工具并配置环境

在此步骤中，您将下载外部工具，并使用任务创建和配置将 Amazon Keyspaces 表自动数据导出到 Amazon S3 存储桶所需的 Amazon 资源。 Amazon Glue 为了高效地执行所有这些任务，我们运行一个名`setup-connector.sh`为 [Git](https://github.com/aws-samples/amazon-keyspaces-examples/blob/main/scala/datastax-v4/aws-glue/setup-connector.sh) hub 的 shell 脚本。

该脚本`setup-connector.sh`可自动执行以下步骤。

1. 使用创建 A **mazon S3 存储桶** Amazon CloudFormation。此存储桶存储下载的 jar 和配置文件以及导出的表数据。

1. 使用创建 **IAM 角色** Amazon CloudFormation。 Amazon Glue 作业使用此角色访问 Amazon Keyspaces 和 Amazon S3。

1. 下载 [Apache Spark Cassandra Connec](https://repo1.maven.org/maven2/com/datastax/spark/) tor 并将其上传到亚马逊 S3 存储桶。

1. 下载 [SigV4 身份验证插件](https://repo1.maven.org/maven2/software/aws/mcs/aws-sigv4-auth-cassandra-java-driver-plugin/)并将其上传到 Amazon S3 存储桶。

1. 下载 [Apache Spark 扩展](https://repo1.maven.org/maven2/uk/co/gresearch/spark/)并将其上传到亚马逊 S3 存储桶。

1. 从 Github 下载[密钥空间重试策略](https://github.com/aws-samples/amazon-keyspaces-java-driver-helpers)，使用 Maven 编译代码，然后将输出上传到 Amazon S3 存储桶。

1. 将**`keyspaces-application.conf`**文件上传到 Amazon S3 存储桶。

**使用 s `setup-connector.sh` hell 脚本自动执行设置和配置步骤。**

1. 将文件从 Github 上的 [aws-](https://github.com/aws-samples/amazon-keyspaces-examples/blob/main/scala/datastax-v4/aws-glue) glue 存储库复制到本地计算机。此目录包含 shell 脚本以及其他必需的文件。

1. 运行 shell 脚本`setup-connector.sh`。您可以指定以下三个可选参数。

   1. `SETUP_STACKNAME`— 这是用于创建 Amazon 资源的 Amazon CloudFormation 堆栈的名称。

   1. `S3_BUCKET_NAME`— 这是 Amazon S3 存储桶的名称。

   1. `GLUE_SERVICE_ROLE_NAME`— 这是 Amazon Glue 用于运行连接到 Amazon Keyspaces 和 Amazon S3 的任务的 IAM 服务角色的名称。

   您可以使用以下命令运行 shell 脚本，为这三个参数提供以下名称。

   ```
   ./setup-connector.sh cfn-setup s3-keyspaces iam-export-role
   ```

   要确认您的存储桶已创建，您可以使用以下 Amazon CLI 命令。

   ```
   aws s3 ls s3://s3-keyspaces
   ```

   命令的输出应如下所示。

   ```
                              PRE conf/
                              PRE jars/
   ```

   要确认 IAM 角色已创建并查看详细信息，您可以使用以下 Amazon CLI 语句。

   ```
   aws iam get-role --role-name "iam-export-role"
   ```

   ```
   {
       "Role": {
           "Path": "/",
           "RoleName": "iam-export-role",
           "RoleId": "AKIAIOSFODNN7EXAMPLE",
           "Arn": "arn:aws:iam::111122223333:role/iam-export-role",
           "CreateDate": "2025-01-28T16:09:03+00:00",
           "AssumeRolePolicyDocument": {
               "Version": "2012-10-17",		 	 	 
               "Statement": [
                   {
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "glue.amazonaws.com"
                       },
                       "Action": "sts:AssumeRole"
                   }
               ]
           },
           "Description": "AWS Glue service role to import and export data from Amazon Keyspaces",
           "MaxSessionDuration": 3600,
           "RoleLastUsed": {
               "LastUsedDate": "2025-01-29T12:03:54+00:00",
               "Region": "us-east-1"
           }
       }
   }
   ```

如果 Amazon CloudFormation 堆栈过程失败，则可以在 Amazon CloudFormation 控制台中查看有关失败堆栈的详细错误信息。

创建包含所有脚本和工具的 Amazon S3 存储桶并配置 IAM 角色后，继续执行[步骤 2：配置导出 Amazon Keyspaces 表的 Amazon Glue 任务](S3-tutorial-step2.md)。