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

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

开始使用 AWS Glue 交互式会话

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

SageMakerStudio 经典版中 AWS Glue 交互式会话的权限

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

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

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

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

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

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

  3. 找到你的 Studio 经典版执行角色。选择角色名称以打开该角色的摘要页面。

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

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

  6. 选择附加策略

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

在执行角色上创建内联自定义策略
  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 Classic 用户界面中创建的新 AWS Glue 交互式会话。从 SageMaker Studio Classic 创建 AWS Glue 交互式会话时,附加到用户配置文件或共享空间的任何用户定义标签都将转移到新的 AWS Glue 交互式会话中。此外, SageMaker Studio Classic 会自动向通过 Studio Classic 用户界面创建的新 AWS Glue 交互式会话添加两个 AWS生成的内部标签(sagemaker:user-profile-arnsagemaker:shared-space-arnsagemaker:domain-arnsagemaker:domain-arn)或(和))。您可以使用这些标签汇总各个域名、用户个人资料或空间的费用。

启用标签传播

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

注意

默认情况下,与 AWS Glue 交互式会话关联的角色与 SageMaker 执行角色相同。您可以使用 m %iam_role agic 命令为 AWS Glue 交互式会话指定不同的执行角色。有关可用于配置 AWS Glue 交互式会话的 Jupyter 魔法命令的信息,请参阅。在 SageMaker 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 交互式会话的创建。您可以在 SageMaker Studio Classic CloudWatch日志中找到有关失败原因的详细信息。

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

请务必记住以下几点:

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

    你可以直接通过 AWS CLI、 AWS Glue API 或 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
  • SageMaker Studio Classic 向通过 Studio Classic 用户界面创建的新 AWS Glue 交互式会话添加两个 AWS生成的内部标签(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

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

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

在 SageMaker Studio Classic 上启动 AWS Glue 互动

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

将在经典 SageMaker 工作室 AWS Glue 中发布
  1. 创建 SageMaker 域名。有关如何创建新域的说明,请参阅Amazon SageMaker 域名概述

  2. 登录 SageMaker 主机,网址为 https://console.aws.amazon.com/sagemaker/

  3. 在左侧面板中选择控制面板

  4. 在用户名旁边的启动应用程序下拉菜单中,选择 Studio

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

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

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

  8. 开始编写 Spark 数据处理脚本。

在 SageMaker Studio 经典版中配置 AWS Glue 交互式会话

注意

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

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

Magic 默认值
%glue_version

3.0

%iam_role

附加到您的 SageMaker域名的执行角色

%region

您的区域

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

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