开始使用 Amazon Glue 交互式会话 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

开始使用 Amazon Glue 交互式会话

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

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

本节列出了在 Studio Classic 中运行 Amazon 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. 选择更新策略

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

标签传播

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

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

启用标签传播

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

注意

默认情况下,与 Amazon Glue 交互式会话关联的角色与 SageMaker 执行角色相同。您可以使用 m %iam_role agic 命令为 Amazon Glue 交互式会话指定不同的执行角色。有关可用于配置 Amazon Glue 交互式会话的 Jupyter 魔法命令的信息,请参阅。在 SageMaker Studio 经典版中配置 Amazon 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/*" ] }
  • 在您 Amazon Glue 会话的 IAM 角色上:创建新的内联策略,然后粘贴以下 JSON 文件。该策略授予您的角色向会话附加标签 (TagResource) 或检索其标签列表 (GetTags) 的权限。

    { "Effect": "Allow", "Action": [ "glue:TagResource", "glue:GetTags" ], "Resource": [ "arn:aws:glue:*:*:session/*" ] }
注意
  • 应用这些权限时发生的失败不会阻止 Amazon Glue 交互式会话的创建。您可以在 SageMaker Studio Classic CloudWatch日志中找到有关失败原因的详细信息。

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

请务必记住以下几点:

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

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

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

其他信息

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

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

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

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

在 SageMaker Studio Classic 上启动 Amazon Glue 互动

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

要 Amazon Glue 在 SageMaker Studio 经典版中发布
  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 经典版中配置 Amazon Glue 交互式会话

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

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

注意

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

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

Magic 默认值
%glue_version

3.0

%iam_role

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

%region

您的区域

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

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