本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
开始使用 Amazon Glue 交互式会话
在本指南中,您将学习如何在 SageMaker AI Studio Classic 中启动 Amazon Glue 交互式会话,以及如何使用 Jupyter 魔法管理您的环境。
Studio 或 Studio 经典版中 Amazon Glue 交互式会话
本节列出了在 Studio 或 Studio Classic 中运行 Amazon Glue 交互式会话所需的策略,并说明了如何设置这些策略。具体而言,它详细介绍了如何:
-
将
AwsGlueSessionUserRestrictedServiceRole
托管策略附加到您的 SageMaker AI 执行角色。 -
为您的 SageMaker AI 执行角色创建内联自定义策略。
-
修改您的 SageMaker AI 执行角色的信任关系。
将 AwsGlueSessionUserRestrictedServiceRole
托管策略附加到执行角色
-
打开 IAM 管理控制台
。 -
在左侧面板中选择角色。
-
查找用户配置文件中使用的 Studio Classic 执行角色。有关如何查看用户配置文件的信息,请参阅 查看域中的用户配置文件。
-
选择角色名称,进入角色摘要页面。
-
在权限选项卡下,从添加权限下拉菜单中选择附加策略。
-
选中托管策略
AwsGlueSessionUserRestrictedServiceRole
旁的复选框。 -
选择附加策略。
摘要页面显示您新添加的托管策略。
在执行角色上创建内联自定义策略
-
在添加权限下拉菜单中选择创建内联策略。
-
选择 JSON 选项卡。
-
复制并粘贴以下策略。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "
unique_statement_id
", "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "sts:GetCallerIdentity" ], "Resource": "*" } ] } -
选择查看策略。
-
输入名称,然后选择创建策略。
摘要页面显示您新添加的自定义策略。
修改该执行角色的信任关系
-
选择信任关系选项卡。
-
选择编辑信任策略。
-
复制并粘贴以下策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "glue.amazonaws.com", "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
选择更新策略。
如果您需要访问其他 Amazon 资源,可以添加其他角色和策略。有关您可以包括的其他角色和策略的描述,请参阅 Amazon Glue 文档中的与 IAM 的交互式会话。
标签传播
标签通常用于跟踪和分配成本、控制会话访问权限、隔离资源等。要了解如何使用标签向 Amazon 资源添加元数据,或者有关常见使用场景的详细信息,请参阅其他信息。
您可以启用 Amazon 标签自动传播到从 Studio 或 Studio Classic 用户界面中创建的新 Amazon Glue 交互式会话。从 Studio 或 Studio Classic 创建 Amazon Glue
交互式会话时,附加到用户配置文件或共享空间的任何用户定义标签都将转移到新的 Amazon Glue 交互式会话中。此外,Studio 和 Studio Classic 会自动将两个 Amazon生成的内部标签((sagemaker:user-profile-arn
和sagemaker:domain-arn
)或(sagemaker:shared-space-arn
和sagemaker:domain-arn
))添加到通过其用户界面创建的新 Amazon Glue 交互式会话中。您可以使用这些标签汇总各个域、用户配置文件或空间的成本。
启用标签传播
要启用标签自动传播到新的 Amazon Glue 交互式会话,请为您的 A SageMaker I 执行角色和与您的会 Amazon Glue 话关联的 IAM 角色设置以下权限:
注意
默认情况下,与 Amazon Glue 交互式会话关联的角色与 SageMaker AI 执行角色相同。您可以使用 m %iam_role
agic 命令为 Amazon Glue 交互式会话指定不同的执行角色。有关可用于配置 Amazon Glue 交互式会话的 Jupyter magic 命令的信息,请参阅在 Studio 或 Studio 经典版中配置 Amazon Glue 互动会话。
-
在你的 SageMaker AI 执行角色上:创建新的内联策略,然后粘贴以下 JSON 文件。该策略授予执行角色描述(
DescribeUserProfile
、DescribeSpace
、DescribeDomain
)和列出在用户个人资料、共享空间和 SageMaker AI 域上设置的标签 (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 交互式会话的创建。您可以在 Studio 或 Studio Classic CloudWatch日志中找到有关失败原因的详细信息。
-
必须重新启动交 Amazon Glue 互式会话的内核才能传播标签值的更新。
请务必记住以下几点:
-
标签附加到会话之后,就无法通过传播将其删除。
您可以直接通过 Amazon CLI、 Amazon Glue API 或从 Amazon Glue 交互式会话中移除标签https://console.aws.amazon.com/sagemaker/
。例如,使用 Amazon CLI,您可以通过提供会话的 ARN 和要移除的标签密钥来移除标签,如下所示: aws glue untag-resource \ --resource-arn
arn:aws:glue:region:account-id:session:session-name
\ --tags-to-removetag-key1
,tag-key2
-
Studio 和 Studio Amazon Classic 向通过其用户界面创建的新 Amazon Glue 交互式会话添加两个生成的内部标签(
sagemaker:user-profile-arn
sagemaker:shared-space-arn
和sagemaker:domain-arn
sagemaker:domain-arn
)或(和))。这些标签计入所有 Amazon 资源上设置的 50 个标签的上限。sagemaker:user-profile-arn
和sagemaker:shared-space-arn
都包含它们所属的域 ID。 -
以
aws:
Amazon:
、或任何大小写字母组合作为密钥前缀的标签密钥不会被传播,而是保留供 Amazon 使用。
其他信息
有关标记更多信息,请参阅以下资源。
在 Studio 或 Studio 经典版上启动 Amazon Glue 互动会话
创建角色、策略和 SageMaker AI 域后,您可以在 Studio 或 Studio Classic 中启动 Amazon Glue 交互式会话。
-
登录 SageMaker AI 控制台,网址为https://console.aws.amazon.com/sagemaker/
。 -
从左侧导航窗格中选择 Studio。
-
从 Studio 登录页面,选择启动 Studio 所需的域和用户配置文件。
-
选择 Open Studio 并启动 JupyterLab 或 Studio 经典版应用程序。
-
在 Jupyter 视图中,依次选择文件、新建和笔记本。
-
对于 Studio Classic 用户:在图像下拉菜单中,选择 SparkAnalytics 1.0 或 SparkAnalytics2.0。在内核下拉菜单中,选择 Glue Spark 或 G lue Python [PySpark 和 Ray]。选定选择。
对于 Studio 用户,请选择 Glue Spark 或 Glue Python [PySpark 和 Ray] 内核
-
(可选)使用 Jupyter magic 来自定义环境。有关 Jupyter magic 的更多信息,请参阅在 Studio 或 Studio 经典版中配置 Amazon Glue 互动会话。
-
开始编写 Spark 数据处理脚本。以下笔记本
展示了大型数据集上的 ETL end-to-end 工作流程,包括 Amazon Glue 交互式会话、探索性数据分析、数据预处理,最后使用 AI 在处理后的数据上训练模型。 SageMaker
在 Studio 或 Studio 经典版中配置 Amazon Glue 互动会话
注意
在 Amazon Glue 内核的生命周期内,所有神奇的配置都将延续到后续会话中。
你可以在 Amazon Glue 交互式会话中使用 Jupyter 魔法来修改会话和配置参数。Magic 是在 Jupyter 单元开头以 %
为前缀的简短命令,它提供了一种快速简便的方法来帮助您控制环境。在你的 Amazon Glue 互动会话中,默认会为你设置以下魔法:
Magic | 默认值 |
---|---|
%glue_version |
3.0 |
%iam_role |
|
%region |
您的区域 |
您可以使用 magic 来进一步自定义环境。例如,如果您想将分配给作业的工作线程数从默认的 5 更改为 10,则可以指定 %number_of_workers 10
。如果要将会话配置为在空闲时间 10 分钟后停止,而不是默认的 2880,则可以指定 %idle_timeout 10
。
目前所有可用的 Jupyter 魔法也在 Amazon Glue Studio 或 Studio Classic 中可用。有关可用 Amazon Glue 魔法的完整列表,请参阅为 Jupyter 和 Amazon Glue Studio 笔记本电脑配置 Amazon Glue 交互式会话。