使用 Amazon Tools for PowerShell
本节提供使用 Amazon Tools for PowerShell 访问Amazon服务的示例。这些示例帮助说明如何使用 cmdlet 执行实际的Amazon任务。
PowerShell 文件联接编码
Amazon Tools for PowerShell 中的一些 cmdlet 编辑您目前在 Amazon 中拥有的文件或记录。例如 Edit-R53ResourceRecordSet
,它对 Amazon Route 53 调用 ChangeResourceRecordSets API。
在 PowerShell 5.1 或更早版本中编辑或联接文件时,PowerShell 会以 UTF-16(而不是 UTF-8)格式对输出进行编码。这可能会添加不需要的字符并创建无效的结果。十六进制编辑器可以显示不需要的字符。
要避免将文件输出转换为 UTF-16,您可以将命令传递到 PowerShell 的 Out-File
cmdlet 中并指定 UTF-8 编码,如以下示例所示:
PS >
*some file concatenation command*
| Out-File filename.txt
-Encoding utf8
如果您在 PowerShell 控制台中运行 Amazon CLI 命令,则相同的行为将适用。您可以将 Amazon CLI 命令的输出传递到 PowerShell 控制台中的 Out-File
。其他 cmdlet(例如 Export-Csv
或 Export-Clixml
)也具有 Encoding
参数。有关具有 Encoding
参数并允许您纠正联接文件输出的编码的 cmdlet 的完整列表,请运行以下命令:
PS >
Get-Command -ParameterName "Encoding"
注意
PowerShell 6.0 及更高版本(包括 PowerShell Core)会自动为联接的文件输出保留 UTF-8 编码。
PowerShell 工具的返回对象
为了使 Amazon Tools for PowerShell 在本机 PowerShell 环境中发挥更大作用,Amazon Tools for PowerShell cmdlet 返回的对象是一个 .NET 对象,而不是通常从 Amazon 开发工具包中的相应 API 返回的 JSON 文本对象。例如,Get-S3Bucket
发出 Buckets
集合,而不是 Amazon S3 JSON 响应对象。Buckets
集合可以放置在 PowerShell 管道中,并以适当的方式交互。同样,Get-EC2Instance
发出一个 Reservation
.NET 对象集合,而不是 DescribeEC2Instances
JSON 结果对象。此行为是设计使然,以使 Amazon Tools for PowerShell 体验与惯用的 PowerShell 更加一致。
如果您需要,您可以使用实际的服务响应。它们作为 note
属性存储在返回的对象上。对于使用 NextToken
字段支持分页的 API 操作,这些还可作为 note
属性附加。
Amazon EC2
本节演示了启动 Amazon EC2 实例所需的步骤,包括如何:
-
检索 Amazon Machine Image (AMI) 列表。
-
为 SSH 身份验证创建密钥对。
-
创建和配置 Amazon EC2 安全组。
-
启动实例并检索关于它的信息。
Amazon S3
本节演示创建托管在 Amazon S3 中的静态网站所需的步骤。它将介绍如何:
-
创建和删除 Amazon S3 存储桶。
-
将文件作为对象上传到 Amazon S3 存储桶中。
-
从 Amazon S3 存储桶中删除对象。
-
指定 Amazon S3 存储桶作为网站。
IAM 与 Amazon Tools for PowerShell
本节说明 Amazon Identity and Access Management (IAM) 中的基本操作,包括如何:
-
创建 IAM 组。
-
创建 IAM 用户。
-
将 IAM 用户添加到 IAM 组。
-
为 IAM 用户指定策略。
-
为 IAM 用户设置密码和凭证。
Amazon Lambda 和 Amazon Tools for PowerShell
本节简要说明了 Amazon Lambda Tools for PowerShell 模块以及设置该模块所需的步骤。
Amazon SNS 和 Amazon SQS
本节介绍为 Amazon SQS 队列订阅 Amazon SNS 主题所需的步骤。它将介绍如何:
-
创建 Amazon SNS 主题。
-
创建 Amazon SQS 队列。
-
为队列订阅 主题。
-
发送消息到主题。
-
从队列接收消息。
CloudWatch
本节提供如何将自定义数据发布到 CloudWatch 的示例。
-
将自定义指标发布到您的 CloudWatch 控制面板。