为会话脚本日志启用 Amazon S3 存储桶存储
在会话脚本配置中启用 Amazon S3 日志记录后,AppStream 2.0 会从会话脚本中捕获标准输出。输出会定期上传到您的 Amazon Web Services 账户中的 S3 存储桶。对于每个 AWS 区域,AppStream 2.0 会在您的账户中创建一个对于您的账户和该区域而言是唯一的存储桶。
您无需执行任何配置任务即可管理这些 S3 存储桶。它们由 AppStream 2.0 服务完全托管。存储在每个存储桶中的日志文件在传输中使用 Amazon S3 的 SSL 端点进行加密,在静态期间使用 Amazon S3 托管的加密密钥进行加密。存储桶以特定格式命名,如下所述:
appstream-logs-region-code-account-id-without-hyphens-random-identifierregion-code-
这是在其中创建堆栈并为会话脚本日志启用了 Amazon S3 存储桶存储的 AWS 区域代码。
account-id-without-hyphens-
您的 Amazon Web Services 账户标识符。随机 ID 确保与该区域中的其他存储桶不发生冲突。存储桶名称的第一部分
appstream-logs不随账户或区域而改变。
例如,如果您在账号 123456789012 在美国西部(俄勒冈州)(us-west-2)区域中的映像中指定会话脚本,则 AppStream 2.0 会在您账户的该区域中创建一个具有如下所示名称的 Amazon S3 存储桶。只有具有足够权限的管理员才能删除此存储桶。
appstream-logs-us-west-2-1234567890123-abcdefg禁用会话脚本不会删除存储在 S3 存储桶中的任何日志文件。要永久删除日志文件,您或具备足够权限的管理员必须使用 Amazon S3 控制台或 API 执行此操作。AppStream 2.0 添加了一个存储桶策略,以防止意外删除存储桶。有关更多信息,请参阅适用于 Amazon AppStream 2.0 的 Identity and Access Management中的“用于应用程序设置持久性的 IAM 策略和 Amazon S3 存储桶”。
启用会话脚本后,将为启动的每个流式传输会话创建一个唯一文件夹。
存储在您账户的 S3 存储桶中的日志文件所在的文件夹路径使用以下结构:
bucket-name/stack-name/fleet-name/access-mode/user-id-SHA-256-hash/session-id/SessionScriptsLogs/session-eventbucket-name-
存储会话脚本的 S3 存储桶的名称。该名称格式如本节中前面所述。
stack-name-
会话来自的堆栈的名称。
fleet-name-
运行会话脚本的实例集的名称。
access-mode-
用户的标识方式:
custom表示 AppStream 2.0 API 或 CLI,federated表示 SAML,userpool表示用户池中的用户。 user-id-SHA-256-hash-
用户特定的文件夹名称。此名称是使用从用户标识符生成的小写 SHA-256 哈希十六进制字符串创建的。
session-id-
用户的流式传输会话的标识符。每个用户流式传输会话均生成一个唯一 ID。
session-event-
生成会话脚本日志的事件。事件值为:
SessionStart和SessionTermination。
以下示例文件夹结构适用于从 test-stack 和 test-fleet 启动的流式传输会话。会话使用用户 ID testuser@mydomain.com 的 API(来自 AWS 账户 ID 123456789012)和美国西部(俄勒冈州)区域(us-west-2)中的设置组 test-stack:
appstream-logs-us-west-2-1234567890123-abcdefg/test-stack/test-fleet/custom/a0bcb1da11f480d9b5b3e90f91243143eac04cfccfbdc777e740fab628a1cd13/05yd1391-4805-3da6-f498-76f5x6746016/SessionScriptsLogs/SessionStart/此示例文件夹结构包含一个用于用户上下文会话启动脚本的日志文件,以及一个用于系统上下文会话启动脚本的日志文件(如果适用)。