

# AWS Glue ETL 的用户后台会话
<a name="user-background-sessions"></a>

借助用户后台会话，即使用户已从笔记本界面注销，长时间运行的分析和机器学习工作负载也能继续运行。此功能是通过 AWS Glue 的可信身份传播功能实现的。以下页面说明了用户后台会话的配置选项和行为。

**注意**  
用户后台会话适用于通过 SageMaker 融通式合作开发工作室等笔记本界面发起的 AWS Glue 交互式会话。启用或禁用此功能仅影响新的交互式会话；现有活动会话不受影响。

## 配置用户后台会话
<a name="configure-user-background-sessions"></a>

必须在两个级别上启用用户后台会话才能正常运行：

1. IAM Identity Center 实例级别（由 IdC 管理员配置）

1. AWS Glue Identity Center 配置级别（由 AWS Glue 管理员配置）

### 启用 AWS Glue 的用户后台会话
<a name="enable-user-background-sessions-glue"></a>

要启用 AWS Glue 的用户后台会话，在创建或更新配置时，必须在 Identity Center 配置中将 `userBackgroundSessionsEnabled` 参数设置为 `true`。

先决条件
+ 用于创建/更新 AWS Glue Identity Center 配置的 IAM 角色必须具有 `sso:PutApplicationSessionConfiguration` 权限。此权限允许 AWS Glue 在 AWS Glue 托管的 IdC 应用程序级别启用用户后台会话。
+ 您的 AWS Glue 交互式会话必须使用 AWS Glue 5.0 或更高版本，并且必须启用可信身份传播。

要使用 AWS CLI 启用用户后台会话：

```
aws glue create-glue-identity-center-configuration \
    --instance-arn "arn:aws:sso:::instance/ssoins-1234567890abcdef" \
    --user-background-sessions-enabled
```

要更新现有配置：

```
aws glue update-glue-identity-center-configuration \
    --user-background-sessions-enabled
```

#### 配置矩阵
<a name="configuration-matrix"></a>

有效的用户后台会话配置取决于 AWS Glue 配置设置和 IAM Identity Center 实例级别设置：


| IAM Identity Center userBackgroundSession 已启用？ | AWS Glue userBackgroundSessionsEnabled | 行为 | 
| --- | --- | --- | 
| 是 | TRUE | 用户后台会话已启用 | 
| 是 | FALSE | 会话过期，用户注销 | 
| 否 | TRUE | 会话创建失败，出现异常 | 
| 否 | FALSE | 会话过期，用户注销 | 

## 默认用户后台会话持续时间
<a name="default-user-background-session-duration"></a>

默认情况下，在 IAM Identity Center 中，所有用户后台会话的持续时间限制为 7 天。管理员可以在 IAM Identity Center 控制台中修改此持续时间。此设置在 IAM Identity Center 实例级别应用，会影响该实例内所有受支持的 IAM Identity Center 应用程序。
+ 持续时间可以设置为 15 分钟到 90 天之间的任意值
+ 此设置在 IAM Identity Center 控制台的“设置”→“身份验证”→“配置”（“非交互式作业”部分）下配置

**注意**  
默认情况下，AWS Glue 交互式会话单独的空闲超时限制为 48 小时。当 AWS Glue 会话空闲超时或用户后台会话持续时间达到时（以先到者为准），会话将终止。

## 禁用用户后台会话的影响
<a name="impact-disabling-user-background-sessions"></a>

在 AWS Glue 配置级别禁用用户后台会话时：
+ **现有交互式会话：**如果这些会话是在启用用户后台会话的情况下启动的，则可以不间断地继续运行。这些会话将继续使用其现有的后台会话令牌，直到这些会话自然终止或被明确停止。
+ **新的交互式会话：**将使用标准的可信身份传播流，而且将在用户注销或交互式会话到期时（例如关闭 SageMaker 融通式合作开发工作室 Jupyter Notebook 时）终止。

### 更改用户后台会话持续时间
<a name="changing-user-background-sessions-duration"></a>

在 IAM Identity Center 中修改用户后台会话的持续时间设置时：
+ **现有交互式会话：**继续以与开始时相同的后台会话持续时间运行
+ **新的交互式会话：**将使用后台会话的新会话持续时间

## 运行时系统注意事项
<a name="runtime-considerations"></a>

### 会话终止条件
<a name="session-termination-conditions"></a>

使用用户后台会话时，AWS Glue 交互式会话将继续运行，直到出现以下情况之一：
+ 用户后台会话过期（基于 IdC 配置，最长 90 天）
+ 管理员已手动撤销用户后台会话
+ AWS Glue 交互式会话达到其空闲超时（默认值：上次执行语句后 48 小时）
+ 用户明确停止或重新启动笔记本内核

### 数据持久性
<a name="data-persistence"></a>

使用用户后台会话时：
+ 用户注销后无法重新连接到笔记本界面查看结果
+ 将您的 Spark 语句配置为在执行完成之前将结果写入永久存储（例如 Amazon S3）

### 成本影响
<a name="cost-implications"></a>
+ 即使用户结束了 SageMaker 融通式合作开发工作室 JupyterLab 会话，作业仍将继续运行直至完成，并且将在完成运行的整个持续时间内产生费用
+ 监控您的活动后台会话，避免因忘记或放弃会话而产生不必要的费用

### 功能可用性
<a name="feature-availability"></a>

AWS Glue 的用户后台会话可用于：
+ 仅限 AWS Glue 交互式会话（不支持 AWS Glue 作业和流式传输作业）
+ AWS Glue 版本 5.0 及更高版本
+ 仅限启用可信身份传播的配置