Snowball 客户端的命令 - AWS Snowball Edge Developer Guide
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Snowball 客户端的命令

在下文中,您将了解有关 Snowball 客户端命令的信息,包括使用示例和示例输出。

为 Snowball 客户端配置配置文件

每次为 Snowball 客户端运行命令时,都要提供您的清单文件、解锁代码和 IP 地址。您可以从 AWS Snowas 系列管理控制台或任务管理 API 获取其中前两个。有关获取您的清单和解锁代码的更多信息,请参阅获取凭证

您可以选择使用 snowballEdge configure 命令将清单的路径、29 个字符组成的解锁代码和终端节点存储为一个配置文件。配置完成后,您可以使用其他 Snowball 客户端命令,而不必为特定任务手动输入这些值。在配置了 Snowball 客户端之后,信息将以纯文本的 JSON 格式保存到home directory/.aws/snowball/config/snowball-edge.config

终端节点为附加了 https:// 的 IP 地址。您可以在 AWS Snowball Edge 设备 LCD 显示屏上找到 AWS Snowball Edge 设备的 IP 地址。AWS Snowball Edge 设备首次连接到您的网络时,会自动获取 DHCP IP 地址 (如果 DHCP 服务器可用)。如果您要使用其他 IP 地址,可以从 LCD 显示屏上进行更改。有关更多信息,请参阅 使用 AWS Snowball Edge 设备

重要

可访问配置文件的任何人都可以访问 Snowball Edge 设备或集群上的数据。管理此文件的本地访问控制是您的管理责任之一。

用量

您可以通过两种方式使用此命令:内联或在提示时。此使用示例显示的是提示方法。

snowballEdge configure

例 Output

Configuration will stored at home directory\.aws\snowball\config\snowball-edge.config Snowball Edge Manifest Path: Path/to/manifest/file Unlock Code: 29 character unlock code Default Endpoint: https://192.0.2.0

如果您同时具有多个任务,或者希望选择从不同的终端节点管理集群,则可以具有多个配置文件。有关多 AWS CLI 配置文件的更多信息,请参阅命名配置文件中的AWS 命令行界面用户指南

获取用于 NFC 验证的 QR 代码

您可以使用此命令生成特定于设备的 QR 代码,以便与 AWS Snowball Edge 验证应用程序一起使用。您可以从 Apple 应用商店或 Google Play 商店下载此应用程序。有关 NFC 验证的更多信息,请参阅验证 NFC 标签

用量

snowballEdge get-app-qr-code --output-file ~/downloads/snowball-qr-code.png

例 Output

QR code is saved to ~/downloads/snowball-qr-code.png

解锁 Snowball Edge 设备

要解锁独立 AWS Snowball Edge 设备,请运行snowballEdge unlock-device命令。要解锁集群,请使用 snowballEdge unlock-cluster 命令。这些命令将验证您对 AWS Snowball Edge 设备的访问权限。

注意

要解除与您的任务关联的设备,这些设备必须位于现场、已接通电源、接入网络并已启动。此外,AWS Snowball Edge 设备前面的 LCD 显示屏必须指明设备已准备就绪,可供使用。

用法(已配置 Snowball 客户端)

snowballEdge unlock-device

例 单个设备解锁输入

snowballEdge unlock-device

例 单个设备解锁输出

Your Snowball Edge device is unlocking. You may determine the unlock state of your device using the describe-device command. Your Snowball Edge device will be available for use when it is in the UNLOCKED state.

集群用法

在解锁集群时,提供您的某个节点的终端节点,以及集群中其他设备的所有 IP 地址。

snowballEdge unlock-cluster --endpoint https://192.0.2.0 --manifest-file Path/to/manifest/file --unlock-code 01234-abcde-ABCDE-01234 --device-ip-addresses 192.0.2.0 192.0.2.1 192.0.2.2 192.0.2.3 192.0.2.4

例 集群解锁输出

Your Snowball Edge Cluster is unlocking. You may determine the unlock state of your cluster using the describe-device command. Your Snowball Edge Cluster will be available for use when your Snowball Edge devices are in the UNLOCKED state.

更新 Snowball Edge

使用以下命令下载和安装您的 Snowball Edge 设备的更新。有关使用这些命令的过程,请参阅更新 AWS Snowball Edge 上的软件

snowballEdge check-for-updates— 返回有关云中可用的 Snowball Edge 软件以及设备上安装的当前版本的版本信息。

用法(已配置 Snowball 客户端)

snowballEdge check-for-updates

例 Output

Latest version: 102 Installed version: 101

snowballEdge describe-device-software— 返回设备的当前软件版本。此外,如果正在下载更新,则还会显示下载状态。如果软件更新正在进行中,则还会显示更新的版本清单以及安装的状态。下面是可能的输出的列表:

  • NA— 当前没有软件更新正在进行中。

  • Downloading— 正在下载新软件。

  • Installing— 正在安装新软件。

  • Requires Reboot— 新软件已安装,但需要重启设备。

    警告

    我们强烈建议您先暂停设备上的所有活动,然后再重启设备。重启设备将停止正在运行的实例,中断对设备上的 Amazon S3 存储桶的任何写入操作,以及从文件接口停止任何写入操作而不清除缓存。所有这些过程都可能会导致丢失数据。

用法(已配置 Snowball 客户端)

snowballEdge describe-device-software

例 Output

Installed version: 101 Installing version: 102 Install State: Downloading

snowballEdge download-updates— 开始下载您的 Snowball Edge 的最新软件更新。

用法(已配置 Snowball 客户端)

snowballEdge download-updates

例 Output

Download started. Run describe-device-software API for additional information.

snowballEdge install-updates— 开始安装已下载的 Snowball Edge 的最新软件更新。

用法(已配置 Snowball 客户端)

snowballEdge install-updates

例 Output

Installation started.

snowballEdge reboot-device— 重启设备。

警告

我们强烈建议您先暂停设备上的所有活动,然后再重启设备。重启设备将停止正在运行的实例,中断对设备上的 Amazon S3 存储桶的任何写入操作,以及从文件接口停止任何写入操作而不清除缓存。所有这些过程都可能会导致丢失数据。

用法(已配置 Snowball 客户端)

snowballEdge reboot-device

例 Output

Rebooting device now.

snowballEdge configure-auto-update-strategies— 配置自动更新策略。

用法(已配置 Snowball 客户端)

snowballEdge configure-auto-update-strategy --auto-check autoCheck [--auto-check-frequency autoCheckFreq] --auto-download autoDownload [--auto-download-frequency autoDownloadFreq] --auto-install autoInstall [--auto-install-frequency autoInstallFreq] --auto-reboot autoReboot [--endpoint endpoint]

例 Output

Successfully configured auto update strategy. Run describe-auto-update-strategies for additional information.

snowballEdge describe-auto-update-strategies— 返回任何当前配置的自动更新策略。

用法(已配置 Snowball 客户端)

snowballEdge describe-auto-update-strategies

例 Output

auto-update-strategy {[ auto-check:true, auto-check-frequency: "0 0 * * FRI", // CRON Expression String, Every Friday at midnight auto-download:true, auto-download-frequency: "0 0 * * SAT", // CRON Expression String, Every Saturday at midnight auto-install:true, auto-install-frequency: "0 13 * * Sun", // CRON Expression String, Every Saturday at midnight auto-reboot: false; ]}

获取凭证

使用snowballEdge list-access-keyssnowballEdge get-secret-access-key命令,您可以在 Snowball Edge 上获取 AWS 账户的管理员用户的凭证。您可以使用这些凭证创建 AWS Identity and Access Management (IAM) 用户和角色,以及在使用 AWS CLI 或 AWS 开发工具包时对您的请求进行身份验证。这些凭证仅与 Snowball Edge 的单个任务相关联,且仅可用于设备或设备集群。设备或设备集群在 AWS 云中并不具有任何 IAM 权限。

注意

如果您将 AWS CLI 与 Snowball Edge 结合使用,则必须在配置 CLI 时使用这些凭证。有关配置 AWS CLI 的凭证的更多信息,请参阅配置 AWS CLI中的AWS 命令行界面用户指南

用法(已配置 Snowball 客户端)

snowballEdge list-access-keys

例 Output

{ "AccessKeyIds" : [ "AKIAIOSFODNN7EXAMPLE" ] }

用法(已配置 Snowball 客户端)

snowballEdge get-secret-access-key --access-key-id Access Key

例 Output

[snowballEdge] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

在 Snowball Edge 上启动服务

Snowball Edge 设备除支持 Amazon S3 之外,还支持多个服务。其中包括计算实例、文件接口和 AWS IoT Greengrass。Amazon S3 和 Amazon EC2 默认情况下始终是开启的,但不能使用 Snowball 客户端停止或重新启动。但是,文件接口和 AWS IoT Greengrass 可以使用snowballEdge start-service命令。要获取每个服务的服务 ID,您可以使用 snowballEdge list-services 命令。

运行此命令之前,请创建一个虚拟网络接口以绑定到您要启动的服务。有关更多信息,请参阅 创建虚拟网络接口

用法(已配置 Snowball 客户端)

snowballEdge start-service --service-id service_id --virtual-network-interface-arns virtual-network-interface-arn

例 Output

Starting the AWS service on your Snowball Edge. You can determine the status of the AWS service using the describe-service command.

在 Snowball Edge 上停止服务

要停止正在 Snowball Edge 上运行的服务,您可以使用snowballEdge stop-service命令。Amazon S3 和 Amazon EC2 服务无法停止。

警告

如果文件接口在将剩余的缓冲数据写入设备之前停止,则可能会丢失数据。有关使用文件接口的更多信息,请参阅 使用文件界面将文件传输到 AWS Snowball Edge

用法(已配置 Snowball 客户端)

snowballEdge stop-service --service-id service_id

例 Output

Stopping the AWS service on your Snowball Edge. You can determine the status of the AWS service using the describe-service command.

获取您的证书以传输数据

要将数据传输到 Snowball Edge,请使用 Amazon S3 Adapter for Snowball。要通过 HTTPS 协议使用适配器,您必须提供证书。证书由每个 Snowball Edge 设备生成。如果您解锁具有其他 IP 地址的 Snowball Edge 设备,则会生成新证书,旧证书不再可用于终端节点。您可以再次使用get-certificate命令。

可以使用以下命令列出这些证书并从您的 Snowball Edge 设备下载它们:

  • list-certificates – 列出可供使用的证书的 Amazon 资源名称 (ARN)。

    用法(已配置 Snowball 客户端)

    snowballEdge list-certificates

    例 Output

    { "Certificates" : [ { "CertificateArn" : "arn:aws:snowball-device:::certificate/78EXAMPLE516EXAMPLEf538EXAMPLEa7", "SubjectAlternativeNames" : [ "192.0.2.0" ] } ] }
  • get-certificate – 根据提供的 ARN 获取特定证书。

    用法(已配置 Snowball 客户端)

    snowballEdge get-certificate --certificate-arn arn:aws:snowball-device:::certificate/78EXAMPLE516EXAMPLEf538EXAMPLEa7

    例 Output

    -----BEGIN CERTIFICATE----- Certificate -----END CERTIFICATE-----

    有关配置证书的信息,请参阅将 S3 接口指定为 AWS CLI 终端节点

AWS Snowball Edge 日志

当您在本地数据中心和 Snowball Edge 之间传输数据时,系统将会自动生成日志。如果您在将数据传输到设备的过程中遇到意外错误,则可以使用以下命令将日志副本保存到本地服务器。

有三个与日志相关的命令:

  • list-logs– 返回 JSON 格式的日志列表。此列表报告日志的大小 (以字节为单位)、日志的 ARN、日志的服务 ID 和日志的类型。

    用法(已配置 Snowball 客户端)

    snowballEdge list-logs

    例 Output

    { "Logs" : [ { "LogArn" : "arn:aws:snowball-device:::log/s3-storage-JIEXAMPLE2f-1234-4953-a7c4-dfEXAMPLE709", "LogType" : "SUPPORT", "ServiceId" : "s3", "EstimatedSizeBytes" : 53132614 }, { "LogArn" : "arn:aws:snowball-device:::log/fileinterface-JIDEXAMPLEf-1234-4953-a7c4-dfEXAMPLE709", "LogType" : "CUSTOMER", "ServiceId" : "fileinterface", "EstimatedSizeBytes" : 4446 }] }
  • get-log— 从 Snowball Edge 将特定日志副本下载到指定路径的服务器上。CUSTOMER日志保存在.zip格式,并且可解压缩此类型的日志以查看其内容。SUPPORT日志已加密,只能由 AWS Support 工程师读取。您可以选择为日志指定名称和路径。

    用法(已配置 Snowball 客户端)

    snowballEdge get-log --log-arn arn:aws:snowball-device:::log/fileinterface-JIDEXAMPLEf-1234-4953-a7c4-dfEXAMPLE709

    例 Output

    Logs are being saved to download/path/snowball-edge-logs-1515EXAMPLE88.bin
  • get-support-logs— 下载所有SUPPORT类型的日志从 Snowball Edge 到指定路径的服务器上。

    用法(已配置 Snowball 客户端)

    snowballEdge get-support-logs

    例 Output

    Logs are being saved to download/path/snowball-edge-logs-1515716135711.bin
重要

CUSTOMER 类型可能包含有关您自己的数据的敏感信息。为了保护此潜在敏感信息,我们强烈建议您在用完这些日志之后将其删除。

获取设备状态

可以使用以下 Snowball 客户端命令确定 Snowball Edge 设备的状态和整体运行状况:

  • describe-device

    用法(已配置 Snowball 客户端)

    snowballEdge describe-device

    例 Output

    { "DeviceId" : "JID-EXAMPLE12345-123-456-7-890", "UnlockStatus" : { "State" : "UNLOCKED" }, "ActiveNetworkInterface" : { "IpAddress" : "192.0.2.0" }, "PhysicalNetworkInterfaces" : [ { "PhysicalNetworkInterfaceId" : "s.ni-EXAMPLEd9ecbf03e3", "PhysicalConnectorType" : "RJ45", "IpAddressAssignment" : "STATIC", "IpAddress" : "0.0.0.0", "Netmask" : "0.0.0.0", "DefaultGateway" : "192.0.2.1", "MacAddress" : "EX:AM:PL:E0:12:34" }, { "PhysicalNetworkInterfaceId" : "s.ni-EXAMPLE4c3840068f", "PhysicalConnectorType" : "QSFP", "IpAddressAssignment" : "STATIC", "IpAddress" : "0.0.0.0", "Netmask" : "0.0.0.0", "DefaultGateway" : "192.0.2.2", "MacAddress" : "EX:AM:PL:E0:56:78" }, { "PhysicalNetworkInterfaceId" : "s.ni-EXAMPLE0a3a6499fd", "PhysicalConnectorType" : "SFP_PLUS", "IpAddressAssignment" : "DHCP", "IpAddress" : "192.168.1.231", "Netmask" : "255.255.255.0", "DefaultGateway" : "192.0.2.3", "MacAddress" : "EX:AM:PL:E0:90:12" } ] }
  • describe-cluster

    用法(已配置 Snowball 客户端)

    snowballEdge describe-cluster

    例 Output

    { "ClusterId" : "CIDEXAMPLE7-5402-4c19-9feb-7c9EXAMPLEd5", "Devices" : [ { "DeviceId" : "JIDEXAMPLE2-bc53-4618-a538-917EXAMPLE94", "UnlockStatus" : { "State" : "UNLOCKED" }, "ActiveNetworkInterface" : { "IpAddress" : "192.0.2.0" }, "ClusterAssociation" : { "State" : "ASSOCIATED", "ClusterId" : "CIDEXAMPLE7-5402-4c19-9feb-7c9EXAMPLEd5" }, "NetworkReachability" : { "State" : "REACHABLE" } }, { "DeviceId" : "JIDEXAMPLE2-bc53-4618-a538-917EXAMPLE94", "UnlockStatus" : { "State" : "UNLOCKED" }, "ActiveNetworkInterface" : { "IpAddress" : "192.0.2.1" }, "ClusterAssociation" : { "State" : "ASSOCIATED", "ClusterId" : "CIDEXAMPLE7-5402-4c19-9feb-7c9EXAMPLEd5" }, "NetworkReachability" : { "State" : "REACHABLE" } }, { "DeviceId" : "JIDEXAMPLE2-bc53-4618-a538-917EXAMPLE94", "UnlockStatus" : { "State" : "UNLOCKED" }, "ActiveNetworkInterface" : { "IpAddress" : "192.0.2.2" }, "ClusterAssociation" : { "State" : "ASSOCIATED", "ClusterId" : "CIDEXAMPLE7-5402-4c19-9feb-7c9EXAMPLEd5" }, "NetworkReachability" : { "State" : "REACHABLE" } }, { "DeviceId" : "JIDEXAMPLE2-bc53-4618-a538-917EXAMPLE94", "UnlockStatus" : { "State" : "UNLOCKED" }, "ActiveNetworkInterface" : { "IpAddress" : "192.0.2.3" }, "ClusterAssociation" : { "State" : "ASSOCIATED", "ClusterId" : "CIDEXAMPLE7-5402-4c19-9feb-7c9EXAMPLEd5" }, "NetworkReachability" : { "State" : "REACHABLE" } }, { "DeviceId" : "JIDEXAMPLE2-bc53-4618-a538-917EXAMPLE94", "UnlockStatus" : { "State" : "UNLOCKED" }, "ActiveNetworkInterface" : { "IpAddress" : "192.0.2.4" }, "ClusterAssociation" : { "State" : "ASSOCIATED", "ClusterId" : "CIDEXAMPLE7-5402-4c19-9feb-7c9EXAMPLEd5" }, "NetworkReachability" : { "State" : "REACHABLE" } } ] }

获取服务状态

可以使用命令确定 Snowball Edge 设备上运行的服务的状态和整体运行状况。describe-service命令。可以首先运行 list-services 命令来查看哪些服务正在运行。

  • list-services

    用法(已配置 Snowball 客户端)

    snowballEdge list-services

    例 Output

    { "ServiceIds" : [ “greengrass”, "fileinterface", "s3", "ec2" ] }
  • describe-service

    此命令返回服务的状态值。它还包括状态信息,这些信息有助于解决您使用服务时可能遇到的问题。这些状态如下所示。

    • ACTIVE – 服务正在运行且可供使用。

    • ACTIVATING – 服务正在启动,但是还不能使用。

    • DEACTIVATING – 服务正处于关闭过程中。

    • INACTIVE – 服务未运行,无法使用。

    用法(已配置 Snowball 客户端)

    snowballEdge describe-service --service-id service-id

    例 Output

    { "ServiceId" : "s3", "Status" : { "State" : "ACTIVE" }, "Storage" : { "TotalSpaceBytes" : 99608745492480, "FreeSpaceBytes" : 99608744468480 }, "Endpoints" : [ { "Protocol" : "http", "Port" : 8080, "Host" : "192.0.2.0" }, { "Protocol" : "https", "Port" : 8443, "Host" : "192.0.2.0", "CertificateAssociation" : { "CertificateArn" : "arn:aws:snowball-device:::certificate/6d955EXAMPLEdb71798146EXAMPLE3f0" } } ] }

从集群中删除节点

这些区域有:disassociate-device命令从 Snowball Edge 集群中删除节点。如果要替换运行状况不佳的节点,请使用此命令。有关集群的更多信息,请参阅 使用 AWS Snowball Edge 集群

重要

仅在您要删除运行状况不佳的节点时才应使用 disassociate-device 命令。如果您尝试删除正常节点,此命令将失败并返回错误。

如果节点意外关闭或断开网络连接,从而临时对集群的其余部分不可用,不要使用此命令删除该节点。使用此命令删除的节点无法添加到任何集群中,必须寄回 AWS。

如果节点意外关闭或断开网络连接,请将节点重新通电并连接到网络,然后使用associate-device命令。您不能使用 disassociate-device 命令来取消关联已启动并正常运行的节点。

用法(已配置 Snowball 客户端)

snowballEdge disassociate-device --device-id Job ID for the Device

例 Output

Disassociating your Snowball Edge device from the cluster. Your Snowball Edge device will be disassociated from the cluster when it is in the "DISASSOCIATED" state. You can use the describe-cluster command to determine the state of your cluster.

向集群添加节点

这些区域有:associate-device命令将节点添加到 Snowball Edge 设备的集群。如果您关闭了一个节点,则会从解锁状态恢复为锁定状态。要解锁该节点,您可以使用此命令。使用此命令将不可用节点替换为您订购作为替换的新节点。有关集群的更多信息,请参阅 使用 AWS Snowball Edge 集群

用法(已配置 Snowball 客户端)

snowballEdge associate-device --device-ip-address IP Address

例 Output

Associating your Snowball Edge device with the cluster. Your Snowball Edge device will be associated with the cluster when it is in the ASSOCIATED state. You can use the describe-cluster command to determine the state of your cluster.

为您的设备创建标签

在设备上添加或覆盖指定标签。您最多可以创建 50 个标签。每个标签由一个键值对组成。 值是可选的。

注意

不要在标签中放置敏感数据。

用法(已配置 Snowball 客户端)

snowballEdge create-tags --tag Key=Name,Value=user-test --tag Key=Stage,Value=beta

有关更多信息,请运行 describe-tags 命令。

例 Output

Tag(s) [Key=Name,Value=test, Key=Stage,Value=beta] created.

从您的设备删除标签

这些区域有:delete-tags命令从您的 Snowball Edge 设备中删除指定标签。

用法(已配置 Snowball 客户端)

snowballEdge delete-tags --tag Key=Stage,Value=beta Tag(s) [Key=Stage,Value=beta] deleted.

有关更多信息,请运行 describe-tags 命令。

注意

如果要同时删除多个标签,可以指定多个键值对,如下所示:

delete-tags --tag Key=Name,Value=test --tag Key=Stage,Value=Beta

如果您指定了标签键而没有指定标签值,则将删除任何具有此键的标签,而不管其值如何。如果您指定了标签键并将空字符串作为标签值,则仅删除将空字符串作为值的标签。

描述设备上的标签

这些区域有:describe-tags命令描述 Snowball Edge 设备上的标签。

用法(已配置 Snowball 客户端)

snowballEdge describe-tags

有关更多信息,请运行 describe-tags 命令。

例 Output

{ "Tags" : [ { "Key" : "Name", "Value" : "user-test" }, { "Key" : "Stage", "Value" : "beta" } ] }