处理实例用户数据
您可以使用实例用户数据来自定义您的实例。启动实例时,您可以将参数或脚本存储为用户数据。用户数据中的所有脚本将在您启动实例时运行。您可以将用户数据作为实例属性进行查看。您还可以通过实例元数据服务(IMDS)查看来自实例的用户数据。
注意事项
-
用户数据会被视为非透明数据;您提供什么数据您就会得到什么数据。由实例对其进行解释。
-
用户数据必须采用 base64 编码。Amazon EC2 控制台可以为您执行 base64 编码或接受 base64 编码的输入。
-
用户数据在进行 base64 编码之前的原始格式的大小限制为 16 KB。长度为 n 的字符串在进行 base64 编码之后的大小为 ceil(n/3)*4。
-
在检索用户数据时,必须对其进行 base64 解码。如果您使用实例元数据或控制台检索数据,则会自动对数据进行解码。
-
如果您停止实例,修改用户数据,然后启动实例,则在启动实例时,不会更新后的用户数据。
-
用户数据是一种实例属性。如果您从实例创建 AMI,则实例用户数据不包含在该 AMI 中。
启动时指定实例用户数据
您可在启动实例时指定用户数据。有关控制台说明,请参阅 启动时指定实例用户数据。有关使用 Amazon CLI 的示例,请参阅 用户数据和 Amazon CLI。
修改实例用户数据
您可以修改具有 EBS 根卷的实例的用户数据。该实例必须处于已停止状态。有关控制台说明,请参阅 查看和更新实例用户数据。有关使用 Amazon CLI 的示例,请参阅 modify-instance-attribute。
从实例检索实例用户数据
注意
本部分中的示例使用 IMDS 的 IPv4 地址:169.254.169.254
。如果要通过 IPv6 地址检索 EC2 实例的实例元数据,请确保启用并改用 IPv6 地址:[fd00:ec2::254]
。IMDS 的 IPv6 地址与 IMDSv2 命令兼容。IPv6 地址只能在基于 Amazon Nitro System 构建的实例上访问。
要从实例中检索用户数据,请使用以下 URI。
http://169.254.169.254/latest/user-data
请求用户数据时,按原样返回数据 (内容类型 application/octet-stream
)。如果该实例没有任何用户数据,则请求将返回 404 - Not Found
。
该示例返回以逗号分隔文本形式提供的用户数据。
该示例返回以脚本形式提供的用户数据。
从您自己的计算机检索实例用户数据
您可以从您自己的计算机检索示实例的用户数据。有关控制台说明,请参阅 查看和更新实例用户数据。有关使用 Amazon CLI 的示例,请参阅 用户数据和 Amazon CLI。