开始使用 AWS Glue 交互式会话 - Amazon SageMaker

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

开始使用 AWS Glue 交互式会话

在本指南中,您将学习如何在 SageMaker Studio Classic 中启动 AWS Glue 交互式会话,以及如何使用 Jupyter 魔法管理您的环境。

Studio 或 Studio 经典版中 AWS Glue 交互式会话

本节列出了在 Studio 或 Studio Classic 中运行 AWS Glue 交互式会话所需的策略,并说明了如何设置这些策略。具体而言,它详细介绍了如何:

  • AwsGlueSessionUserRestrictedServiceRole托管策略附加到您的 SageMaker 执行角色。

  • 为您的 SageMaker 执行角色创建内联自定义策略。

  • 修改您的 SageMaker 执行角色的信任关系。

AwsGlueSessionUserRestrictedServiceRole 托管策略附加到执行角色
  1. 打开控制IAM台

  2. 在左侧面板中选择角色

  3. 查找您的用户配置文件使用的 Studio Classic 执行角色。有关如何查看用户个人资料的信息,请参阅查看网域中的用户个人资料

  4. 选择您的角色名称以访问角色摘要页面。

  5. 权限选项卡下,从添加权限下拉菜单中选择附加策略

  6. 选中托管策略 AwsGlueSessionUserRestrictedServiceRole 旁的复选框。

  7. 选择附加策略

    摘要页面显示您新添加的托管策略。

在执行角色上创建内联自定义策略
  1. 添加权限下拉菜单中选择创建内联策略

  2. 选择 JSON 选项卡。

  3. 复制并粘贴以下策略。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "unique_statement_id", "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "sts:GetCallerIdentity" ], "Resource": "*" } ] }
  4. 选择查看策略

  5. 输入名称,然后选择创建策略

    摘要页面显示您新添加的自定义策略。

修改该执行角色的信任关系
  1. 选择信任关系选项卡。

  2. 选择编辑信任策略

  3. 复制并粘贴以下策略。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  4. 选择更新策略

如果您需要访问其他 AWS 资源,可以添加其他角色和策略。有关您可以包括的其他角色和策略的描述,请参阅 AWS Glue 文档IAM中的交互式会话

标签传播

标签通常用于跟踪和分配成本、控制会话访问权限、隔离资源等。要了解如何使用标签向 AWS 资源添加元数据,或者有关常见使用场景的详细信息,请参阅其他信息

您可以启用 AWS 标签自动传播到从 Studio 或 Studio Classic 用户界面中创建的新 AWS Glue 交互式会话。从 Studio 或 Studio Classic 创建 AWS Glue 交互式会话时,附加到用户配置文件或共享空间的任何用户定义标签都将转移到新的 AWS Glue 交互式会话中。此外,Studio 和 Studio Classic 会自动将两个 AWS生成的内部标签((sagemaker:user-profile-arnsagemaker:domain-arn)或(sagemaker:shared-space-arnsagemaker:domain-arn))添加到通过其用户界面创建的新 AWS Glue 交互式会话中。您可以使用这些标签汇总各个域名、用户个人资料或空间的费用。

启用标签传播

要启用标签自动传播到新的 AWS Glue 交互式会话,请为您的 SageMaker 执行角色和与您的会 AWS Glue 话关联的IAM角色设置以下权限:

注意

默认情况下,与 AWS Glue 交互式会话关联的角色与 SageMaker 执行角色相同。您可以使用 m %iam_role agic 命令为 AWS Glue 交互式会话指定不同的执行角色。有关可用于配置 AWS Glue 交互式会话的 Jupyter magic 命令的信息,请参阅在 Studio 或 Studio 经典版中配置 AWS Glue 互动会话

  • 在您的 SageMaker 执行角色上:创建新的内联策略,然后粘贴以下JSON文件。该策略授予执行角色描述(DescribeUserProfileDescribeSpaceDescribeDomain)和列出在用户配置文件、共享空间和 SageMaker域上设置的标签 (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日志中找到有关失败原因的详细信息。

  • 必须重新启动交 AWS Glue 互式会话的内核才能传播标签值的更新。

请务必记住以下几点:

  • 标签附加到会话之后,就无法通过传播将其删除。

    您可以直接通过 AWS CLI、或,从 AWS Glue 交互式会话中 AWS Glue API移除标签https://console.aws.amazon.com/sagemaker/。例如,使用 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 AWS Classic 向通过其用户界面创建的新 AWS Glue 交互式会话添加两个生成的内部标签(sagemaker:user-profile-arnsagemaker:shared-space-arnsagemaker:domain-arnsagemaker:domain-arn)或(和))。这些标签计入所有 AWS 资源上设置的 50 个标签的上限。两sagemaker:user-profile-arn者都sagemaker:shared-space-arn包含它们所属的域 ID。

  • aws:AWS:、或任何大小写字母组合作为密钥前缀的标签密钥不会被传播,而是保留供 AWS 使用。

其他信息

有关标记更多信息,请参阅以下资源。

  • 要了解如何使用标签向 AWS 资源添加元数据,请参阅为资源添加标签 AWS

  • 有关使用标签跟踪成本的信息,请参阅 Studio 管理最佳实践中的成本分析

  • 有关 AWS Glue 根据标签密钥控制访问权限的信息,请参阅 w ABACith AWS Glue

在 Studio 或 Studio 经典版上启动 AWS Glue 互动会话

创建角色、策略和 SageMaker 域后,您可以在 Studio 或 Studio Classic 中启动 AWS Glue 交互式会话。

  1. 登录 SageMaker 控制台,网址为https://console.aws.amazon.com/sagemaker/

  2. 从左侧导航窗格中选择 Studio

  3. 在 Studio 登录页面上,选择用于启动 Studio 的域和用户个人资料。

  4. 选择 Open Studio 并启动 JupyterLab 或 Studio 经典版应用程序。

  5. 在 Jupyter 视图中,依次选择文件新建笔记本

  6. 对于 Studio Classic 用户:在图像下拉菜单中,选择 SparkAnalytics 1.0SparkAnalytics2.0。在内核下拉菜单中,选择 Glue Spark 或 G lue Python [PySpark 和 Ray]。选定选择

    对于 Studio 用户,请选择 Glue SparkGlue Python [PySpark 和 Ray] 内核

  7. (可选)使用 Jupyter magic 来自定义环境。有关 Jupyter magic 的更多信息,请参阅在 Studio 或 Studio 经典版中配置 AWS Glue 互动会话

  8. 开始编写 Spark 数据处理脚本。以下笔记本展示了在大型数据集ETL上使用 AWS Glue 交互式会话、探索性数据分析、数据预处理,最后使用处理过的数据训练模型 end-to-end的工作流程。 SageMaker

在 Studio 或 Studio 经典版中配置 AWS Glue 互动会话

注意

在 AWS Glue 内核的生命周期内,所有神奇的配置都将延续到后续会话中。

你可以在 AWS Glue 交互式会话中使用 Jupyter 魔法来修改会话和配置参数。Magic 是在 Jupyter 单元开头以 % 为前缀的简短命令,它提供了一种快速简便的方法来帮助您控制环境。在您的 AWS Glue 互动会话中,默认会为您设置以下魔法:

Magic 默认值
%glue_version

3.0

%iam_role

execution role attached to your SageMaker domain

%region

您的区域

您可以使用 magic 来进一步自定义环境。例如,如果您想将分配给作业的工作线程数从默认的 5 更改为 10,则可以指定 %number_of_workers 10。如果要将会话配置为在空闲时间 10 分钟后停止,而不是默认的 2880,则可以指定 %idle_timeout 10

目前所有可用的 Jupyter 魔法也在 AWS Glue Studio 或 Studio Classic 中可用。有关可用 AWS Glue 魔法的完整列表,请参阅为 Jupyter 和 AWS Glue Studio 笔记本电脑配置 AWS Glue 交互式会话