使用与 Amazon EC2 兼容的端点 - Amazon Snowcone 用户指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用与 Amazon EC2 兼容的端点

在接下来的内容中,您将大体了解与 Amazon Elastic Compute Cloud(Amazon EC2)兼容的端点。借助此端点,您可以通过编程方式,使用与 Amazon EC2 兼容的 API 操作管理您的 亚马逊机器映像(AMI)和计算实例。

将兼容 Amazon EC2 的终端节点指定为终端节点 Amazon CLI

当您使用 Amazon CLI 向 Amazon Snowcone 设备发出命令时,可以指定终端节点是兼容 Amazon EC2 的终端节点。您可以选择使用 HTTPS 端点,或不安全的 HTTP 端点,如下所示。

HTTPS 安全端点

aws ec2 describe-instances --endpoint https://192.0.2.0:8243 --ca-bundle path/to/certificate

HTTP 不安全端点

aws ec2 describe-instances --endpoint http://192.0.2.0:8008

如果您使用 HTTPS 端点 8243,传输中的数据将加密。使用 Snowcone 在解锁时所生成的证书来确保此加密。在您具有证书后,可以将其保存到本地 ca-bundle.pem 文件。然后,可以将 Amazon CLI 配置文件配置为包含您的证书的路径,如下所述。

要将您的证书关联到与 Amazon EC2 兼容的端点,请执行以下操作
  1. 为 Snowcone 接通电源并将其连接到网络,然后启动它。

  2. 在设备解锁完成后,记下其在本地网络上的 IP 地址。

  3. 从您的网络上的终端,确保您可以对 Snowcone 设备执行 ping 操作。

  4. 在您的终端中运行 snowballEdge get-certificate 命令。有关此命令的更多信息,请参阅获取您的证书以传输数据

  5. snowballEdge get-certificate 命令的输出保存到文件,例如 ca-bundle.pem

  6. 从您的终端运行以下命令。

    aws configure set profile.snowcone.ca_bundle /path/to/ca-bundle.pem

在您完成此过程之后,可以使用这些本地凭证、您的证书和您指定的端点运行 CLI 命令。

Snowcone 不支持的 Amazon EC2 特征

使用与 Amazon EC2 兼容的端点,您可以使用与 Amazon EC2 兼容的 API 操作以编程方式在 Snowcone 上管理 AMI 和计算实例。但是,并非所有特征和 API 操作均支持用于 Snowcone 设备。

不支持本指南中未明确列出为支持的任何特征或操作。例如,以下 Amazon EC2 操作不支持用于 Snowcone:

在 Snowcone 上支持与 Amazon EC2 兼容的 Amazon CLI 命令

您可以通过与 Amazon EC2 兼容的端点来管理 Snow 系列设备上的计算实例。这种类型的终端节点支持 Amazon 软件开发工具包的许多 Amazon EC2 CLI 命令和操作。有关安装和设置的信息 Amazon CLI,包括指定 Amazon Web Services 区域 要对哪个进行 Amazon CLI 呼叫,请参阅《Amazon Command Line Interface 用户指南》

Snowcone 上支持的与 Amazon EC2 兼容的 Amazon CLI 命令列表

接下来,您可以找到 Snowcone 设备支持的 Amazon EC2 Amazon CLI 命令和选项子集的描述。如果某个命令或选项未在下方列出,则表明它不受支持。您可以声明一些不受支持的选项以及一个命令。但是,这些都会被忽略。

  • associate-address:将虚拟 IP 地址与实例关联,以用于设备上的三个物理网络接口之一:

    • --instance-id:单个 sbe 实例的 ID。

    • --public-ip:要用来访问您的实例的虚拟 IP 地址。

  • attach-vol ume — 将 Amazon EBS 卷附加到 Amazon Snowcone 设备上已停止或正在运行的实例,并将其公开给具有指定设备名称的实例。

    • --device value:设备名称。

    • --instance-id:Amazon EC2 目标实例的 ID。

    • ---volume-id value:EBS 卷的 ID。

  • authorize-security-group-egress— 向安全组添加一条或多条出口规则,以便与 Snowcone 设备配合使用。具体来说,此操作允许实例将流量发送到一个或多个目标 IPv4 CIDR 地址范围。有关更多信息,请参阅Snow 设备中的安全组

    • --group-id value:安全组的 ID。

    • [--ip-permissions value]:一个或多个 IP 权限集。

  • authorize-security-group-ingress— 向安全组添加一条或多条入口规则。当调用 authorize-security-group-ingress 时,您必须为 group-namegroup-id 指定一个值。

    • [--group-name value]:安全组的名称。

    • [--group-id value]:安全组的 ID

    • [--ip-permissions value]:一个或多个 IP 权限集。

    • [--protocol value] IP 协议。可能的值为 tcpudpicmp--port 参数是必填项,除非“所有协议”值指定为(-1)。

    • [--port value]:对于 TCP 或 UDP,允许的端口范围。此值可以是单个整数或范围(最小值–最大值)。

      对于 ICMP,为单个整数或范围(type-code),其中,type 表示 ICMP 类型编号,code 表示 ICMP 代码编号。值为 -1 表示所有 ICMP 类型的所有 ICMP 代码。仅 type 的值为 -1 表示指定 ICMP 类型的所有 ICMP 代码。

    • [--cidr value]:CIDR IP 范围。

  • create-launch-template— 创建启动模板。启动模板包含用于启动实例的参数。当您使用 RunInstances 启动实例时,您可以指定启动模板,而不是在请求中提供启动参数。每 Amazon Snowcone 台设备最多可以创建 100 个模板。

    • --launch-template-name string — 启动模板的名称。

    • -launch-template-data structure--启动模板的信息。支持以下属性:

      • ImageId

      • InstanceType

      • SecurityGroupIds

      • TagSpecifications

      • UserData

      JSON 语法:

      { "ImageId":"string", "InstanceType":"sbe-c.large", "SecurityGroupIds":[ "string", "..." ], "TagSpecifications":[ { "ResourceType":"instance", "Tags":[ { "Key":"Name", "Value":"Test" }, { "Key":"Stack", "Value":"Gamma" } ] } ] }
    • [--version-description string]:第一版启动模板的说明。

    • --endpoint snowballEndpoint:一个值,使您可以使用 Amazon EC2 API 操作以编程方式管理计算实例。有关更多信息,请参阅将兼容 Amazon EC2 的终端节点指定为终端节点 Amazon CLI

  • create-launch-template-version— 为启动模板创建新版本。您可以指定启动模板的一个现有版本作为新版本的基础。启动模板版本是按创建顺序编号的。您无法指定、更改或替换启动模板版本的编号。您可以为每个启动模板创建多达 100 个版本。

    在请求中指定启动模板 ID 或启动模板名称。

    • --launch-template-id string — 启动模板的 ID。

    • --launch-template-name string — 启动模板的名称。

    • -launch-template-data structure--启动模板的信息。支持以下属性:

      • ImageId

      • InstanceType

      • SecurityGroupIds

      • TagSpecifications

      • UserData

      JSON 语法:

      '{ "ImageId":"string", "InstanceType":"sbe-c.large", "SecurityGroupIds":["string", ...], "TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"Name","Value":"Test"}, {"Key":"Stack","Value":"Gamma"}]}], "UserData":"this is my user data" }'
    • [--source-version string]:作为新版本基础的启动模板的版本号。新版本继承和源版本相同的启动参数,但在 launch-template-data 中指定的参数除外。

    • [--version-description string]:第一版启动模板的说明。

    • --endpoint snowballEndpoint:一个值,使您可以使用 Amazon EC2 API 操作以编程方式管理计算实例。有关更多信息,请参阅将兼容 Amazon EC2 的终端节点指定为终端节点 Amazon CLI

  • create-tags:添加或覆盖指定资源的一个或多个标签。每个资源最多可以有 50 个标签。每个标签由一个键和一个可选值组成。资源的标签键必须是唯一的。支持以下资源:

    • AMI

    • 实例

    • 启动模板

    • 安全组

  • create-security-group— 在你的 Snowcone 设备上创建安全组。您最多可以创建 50 个安全组。创建安全组时,您可以指定选择的友好名称:

    • --group-name value:安全组的名称。

    • --description value:安全组的描述。此仅为信息性。此值最长可达 255 个字符。

  • create-vol ume — 创建可连接到设备上实例的 Amazon EBS 卷。 Amazon Snowcone

    • [--sizevalue] — 中的卷的大小 GiBs,可以从 1 GiB 到 1 TB ( GiBs1000) 不等。

    • [--snapshot-id value]:从中创建卷的快照。

    • [--volume-type value]:卷类型。如果未指定值,则默认值为 sbg1。可能的值包括:

      • 对于磁性介质卷为 sbg1

      • 对于 SSD 卷为 sbp1

    • [--tag-specification value:在创建期间应用到卷的标签列表。

  • delete-launch-template— 删除启动模板。如果删除启动模板,则会删除该模板的所有版本。

    在请求中指定启动模板 ID 或启动模板名称。

  • delete-launch-template-version— 删除启动模板的一个或多个版本。您无法删除启动模板的默认版本;您必须先分配一个不同的版本以作为默认版本。如果默认版本是唯一启动模板的版本,请使用 delete-launch-template 命令删除整个启动模板版本。

    在请求中指定启动模板 ID 或启动模板名称。

    • --launch-template-id string — 启动模板的 ID。

    • --launch-template-name string — 启动模板的名称。

    • --versions (list) "string" "string" :要删除的一个或多个启动模板版本的版本号。

    • --endpoint snowballEndpoint:一个值,使您可以使用 Amazon EC2 API 操作以编程方式管理计算实例。

  • delete-security-group— 删除安全组。

    如果您尝试删除与实例关联的安全组或由另一个安全组引用的安全组,则操作将失败,并显示 DependencyViolation

    • --group-name value:安全组的名称。

    • --description value:安全组的描述。此仅为信息性。此值最长可达 255 个字符。

  • delete-tags:从指定资源(AMI、计算实例、启动模板或安全组)中删除一组指定的标签。

  • delete-volume:删除指定的 Amazon EBS 卷。该卷必须处于 available 状态(未附加到实例)。

    • --volume-id value:卷的 ID。

  • describe-addresses:描述与您设备上相同数量的 实例关联的一个或多个虚拟 IP 地址。

    • --public-ips:与您的实例关联的一个或多个虚拟 IP 地址。

  • describe-images:描述可供您使用的一个或多个映像(AMI)。在创建作业期间,可供您使用的映像会添加到 Snowcone 设备上。

    • --image-id:AMI 的 Snowcone AMI ID。

  • describe-instance-attribute— 描述指定实例的指定属性。一次只能指定一个属性。支持以下属性:

    • instanceInitiatedShutdownBehavior

    • instanceType

    • userData

  • describe-instances:描述一个或多个实例。该响应会返回分配给该实例的任何安全组。

    • --instance-ids:设备上停止的一个或多个 sbe 实例的 ID。

    • --page-size:调用中获取的每个页面的大小。此值不会影响命令的输出中返回的项目数。设置较小的页面大小会导致对设备进行更多调用,每次调用检索的项目数较少。这样做有助于防止调用超时。

    • --max-items:命令的输出中要返回的项目总数。如果可用的总项目数超过指定的值,则命令的输出中会提供 NextToken。要恢复分页,请在后续命令的 starting-token 参数中提供 NextToken 值。

    • --starting-token:指定从何处开始分页的令牌。此令牌是先前截断的响应中的 NextToken 值。

  • describe-launch-templates— 描述一个或多个启动模板。describe-launch-templates 命令是一个分页操作。您可以进行多个调用以检索结果的整个数据集。

    您必须在请求中指定启动模板 ID 或启动模板名称。

    • --launch-template-ids (列表)"string" "string"-启动模板的 ID 列表。

    • --launch-template-names (列表)"string" "string"-启动模板的名称列表。

    • --page-size:调用中获取的每个页面的大小。此值不会影响命令的输出中返回的项目数。设置较小的页面大小会导致对设备进行更多调用,每次调用检索的项目数较少。这样做有助于防止调用超时。

    • --max-items:命令的输出中要返回的项目总数。如果可用的总项目数超过指定的值,则命令的输出中会提供 NextToken。要恢复分页,请在后续命令的 starting-token 参数中提供 NextToken 值。

    • --starting-token:指定从何处开始分页的令牌。此令牌是先前截断的响应中的 NextToken 值。

    • --endpoint snowballEndpoint:一个值,使您可以使用 Amazon EC2 API 操作以编程方式管理计算实例。有关更多信息,请参阅将兼容 Amazon EC2 的终端节点指定为终端节点 Amazon CLI

  • describe-launch-template-versions— 描述指定启动模板的一个或多个版本。您可以描述所有版本、单个版本或一系列版本。describe-launch-template-versions 命令是一个分页操作。您可以进行多个调用以检索结果的整个数据集。

    您必须在请求中指定启动模板 ID 或启动模板名称。

    • --launch-template-id string — 启动模板的 ID。

    • --launch-template-name string — 启动模板的名称。

    • [--versions (list) "string" "string"] :要删除的一个或多个启动模板版本的版本号。

    • [--min-version string]:用于描述启动模板版本的最小版本号。

    • [--max-version string]:用于描述启动模板版本的最大版本号。

    • --page-size:调用中获取的每个页面的大小。此值不会影响命令的输出中返回的项目数。设置较小的页面大小会导致对设备进行更多调用,每次调用检索的项目数较少。这样做有助于防止调用超时。

    • --max-items:命令的输出中要返回的项目总数。如果可用的总项目数超过指定的值,则命令的输出中会提供 NextToken。要恢复分页,请在后续命令的 starting-token 参数中提供 NextToken 值。

    • --starting-token:指定从何处开始分页的令牌。此令牌是先前截断的响应中的 NextToken 值。

    • --endpoint snowballEndpoint:一个值,使您可以使用 Amazon EC2 API 操作以编程方式管理计算实例。有关更多信息,请参阅将兼容 Amazon EC2 的终端节点指定为终端节点 Amazon CLI

  • describe-security-groups— 描述您的一个或多个安全组。

    describe-security-groups 命令是一个分页操作。您可以发出多个 API 调用以检索结果的整个数据集。

    • [--group-name value]:安全组的名称。

    • [--group-id value]:安全组的 ID。

    • [--page-sizevalue]-服务调用中要获取的每页的大小。 Amazon 此大小不会影响命令的输出中返回的项目数。设置较小的页面大小会导致对 Amazon 服务进行更多调用,每次调用检索的项目数较少。这种方法可以帮助防止 Amazon 服务呼叫超时。有关用法示例,请参阅《Amazon Command Line Interface 用户指南》中的分页

    • [--max-items value]:命令的输出中要返回的项目总数。如果可用的总项目数超过指定的值,则命令的输出中会提供 NextToken。要恢复分页,请在后续命令的 starting-token 参数中提供 NextToken 值。请勿在 Amazon CLI之外直接使用 NextToken 响应元素。有关用法示例,请参阅《Amazon Command Line Interface 用户指南》中的分页

    • [--starting-token value]:指定从何处开始分页的令牌。此令牌是先前截断的响应中的 NextToken 值。有关用法示例,请参阅《Amazon Command Line Interface 用户指南》中的分页

  • describe-tags:描述用于指定资源(imageinstance 或安全组)的一个或多个标签。使用此命令时,支持以下筛选条件:

    • launch-template

    • resource-id

    • resource-type:imageinstance

    • key

    • value

  • describe-volumes:描述指定的 Amazon EBS 卷。

    • [--max-items value]:命令的输出中要返回的项目总数。如果可用的总项目数超过指定的值,则命令的输出中会提供 NextToken。要恢复分页,请在后续命令的 starting-token 参数中提供 NextToken 值。

    • [--starting-token value]:指定从何处开始分页的令牌。此令牌是先前截断的响应中的 NextToken 值。

    • [--volume-ids value]:一个或多个卷 ID。

  • detach-volume:从已停止或正在运行的实例中分离 Amazon EBS 卷。

    • [--device value]:设备名称。

    • [--instance-id]:Amazon EC2 目标实例的 ID。

    • --volume-id value:卷的 ID。

  • disassociate-address:取消虚拟 IP 地址与所关联实例的关联。

    • --public-ip:您要与实例取消关联的虚拟 IP 地址。

  • get-launch-template-data— 检索指定实例的配置数据。您可以使用此数据来创建启动模板。

  • modify-launch-template— 修改启动模板。您可以指定要设置为默认版本的启动模板版本。在未指定启动模板版本的情况下启动实例时,将会应用启动模板的默认版本。

    在请求中指定启动模板 ID 或启动模板名称。

    • --launch-template-id string — 启动模板的 ID。

    • --launch-template-name string — 启动模板的名称。

    • --default-version string:设置为默认版本的启动模板版本号。

    • --endpoint snowballEndpoint:一个值,使您可以使用 Amazon EC2 API 操作以编程方式管理计算实例。有关更多信息,请参阅将兼容 Amazon EC2 的终端节点指定为终端节点 Amazon CLI

  • modify-instance-attribute— 修改指定实例的属性。支持以下属性:

    • instanceInitiatedShutdownBehavior

    • userData

  • revoke-security-group-egress— 从安全组中移除一条或多条出口规则:

    • [--group-id value]:安全组的 ID

    • [--ip-permissions value]:一个或多个 IP 权限集。

  • revoke-security-group-ingress— 撤销安全组的一个或多个入口规则。当调用 revoke-security-group-ingress 时,您必须为 group-namegroup-id 指定一个值。

    • [--group-name value]:安全组的名称。

    • [--group-id value]:安全组的 ID。

    • [--ip-permissions value]:一个或多个 IP 权限集。

    • [--protocol value] IP 协议。可能的值为 tcpudpicmp--port 参数是必填项,除非“所有协议”值指定为(-1)。

    • [--port value]:对于 TCP 或 UDP,允许的端口范围。单个整数或范围(最小值–最大值)。

      对于 ICMP,为单个整数或范围(type-code),其中,type 表示 ICMP 类型编号,code 表示 ICMP 代码编号。值为 -1 表示所有 ICMP 类型的所有 ICMP 代码。仅 type 的值为 -1 表示指定 ICMP 类型的所有 ICMP 代码。

    • [--cidr value]:CIDR IP 范围。

  • run-instances:通过将 Snowcone AMI ID 用于 AMI,启动一个计算实例。

    注意

    在 Snowcone 设备上启动计算实例最多需要 1.5 小时,具体取决于实例的大小和类型。

    • [--block-device-mappings (list)] — 块储存设备映射条目。支持 DeleteOnTerminationVolumeSizeVolumeType 参数。启动卷必须为类型 sbg1

      此命令的 JSON 语法如下所示。

      { "DeviceName": "/dev/sdh", "Ebs": { "DeleteOnTermination": true|false, "VolumeSize": 100, "VolumeType": "sbp1"|"sbg1" } }
    • --count:要启动的实例数量。如果提供单个数字,则它被视为要启动的最小实例数量(默认为 1)。如果以 min:max 形式提供范围,则第一个数字解释为要启动的最小实例数量,第二个数字解释为要启动的最大实例数量。

    • --image-id:AMI 的 Snowcone AMI ID,可以通过调用 describe-images 获得。启动实例时需要 AMI。

    • --InstanceInitiatedShutdownBehavior — 默认情况下,当您从实例启动关闭操作时(使用诸如关闭或关机之类的命令),实例会停止。您可以更改此行为,以便使其终止。支持 stopterminate 参数。默认值为 stop。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的更改实例启动的关闭操作

    • --instance-type:sbe 实例类型。

    • --launch-template structure:设置为默认版本的启动模板的版本号。您在 run-instances 命令中指定的任何参数都会覆盖启动模板中的相同参数。您可以指定启动模板的名称或 ID,但不能同时指定二者。

      { "LaunchTemplateId": "string", "LaunchTemplateName": "string", "Version": "string" }
    • --security-group-ids — 一个或多个安全组 ID。您可以使用创建安全组CreateSecurityGroup。如果未提供任何值,则会将默认安全组的 ID 分配给创建的实例。

    • --tag-specifications:要在启动期间应用于资源的标签。只能在启动时标记实例。指定的标签将应用于在启动期间创建的所有实例。要在创建之后标记资源,请使用 create-tags

    • --user-data:提供给实例的用户数据。如果您使用的是 Amazon CLI,则会为您执行 base64 编码,您可以从文件中加载文本。否则,您必须提供 base64 编码文本。

  • start-instances:启动您先前停止的 sbe 实例。附加到实例的所有资源从启动到停止期间一直持续存在,但在实例终止时会被擦除。

    • --instance-ids:设备上停止的一个或多个 sbe 实例的 ID。

  • stop-instances:停止一个正在运行的 sbe 实例。附加到实例的所有资源从启动到停止期间一直持续存在,但在实例终止时会被擦除。

    • --instance-ids:设备上要停止的一个或多个 sbe 实例的 ID。

  • terminate-instances:关闭一个或多个实例。此操作是幂等的;如果您多次终止某个实例,每个调用都成功。附加到实例的所有资源从启动到停止期间一直持续存在,但在实例终止时数据会被擦除。

    注意

    默认情况下,当您使用 shutdownpoweroff 等命令启动从实例关闭时,实例将停止。但是,您可以使用 InstanceInitiatedShutdownBehavior 属性来更改此行为,以便这些命令可以终止您的实例。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的更改实例启动的关闭操作

    • --instance-ids:设备上将终止的一个或多个 sbe 实例的 ID。为这些实例存储的所有关联数据都将丢失。

支持的 Amazon EC2 API 操作

在下文中,可以在《Amazon EC2 API 参考》中找到可用于 Snowcone 设备的 Amazon EC2 API 操作以及指向其说明的链接。Amazon EC2 API 调用需要签名版本 4(SigV4)签名。如果您使用 Amazon CLI 或 Amazon SDK 进行这些 API 调用,则系统会为您处理 Sigv4 签名。否则,您需要实施自己的 SigV4 签名解决方案。