在 Linux 或 macOS 上安装适用于 PowerShell 的 AWS 工具 - 适用于 PowerShell 的 AWS 工具
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

在 Linux 或 macOS 上安装适用于 PowerShell 的 AWS 工具

本主题提供有关如何在 Linux 或 macOS 上安装适用于 PowerShell 的 AWS 工具的说明。

设置概述

要在 Linux 或 macOS 计算机上安装适用于 PowerShell 的 AWS 工具,可以从两个程序包选项中选择:

  • AWS。工具— 适用于 PowerShell 的 AWS 工具的模块化版本。每个 AWS 服务都由其自己的小模块以及共享的支持模块提供支持AWS.Tools.Common

  • AWSS 强力外壳. 网核— 适用于 PowerShell 的 AWS 工具的单一大模块版本。所有 AWS 服务都由这个单一大模块支持。

在运行 Linux 或 macOS 的计算机上设置这些事项涉及以下任务,本主题后面将详细介绍:

  1. 在支持的系统上安装 PowerShell Core 6.0 或更高版本。

  2. 安装 PowerShell Core 后,通过在系统 Shell 中运行 pwsh 来启动 PowerShell。

  3. 安装 AWS 工具或 AWS 强力外壳。

  4. 运行相应的 Import-Module cmdlet 以将模块导入到 PowerShell 会话中。

  5. 运行 Initialize-AWSDefaultConfiguration cmdlet 以提供您的 AWS 凭证。

Prerequisites

确保您满足设置适用于 PowerShell 的 AWS 工具的先决条件上列出的要求。

要运行适用于 PowerShell Core 的 AWS 工具,您的计算机必须运行 PowerShell Core 6.0 或更高版本。

  • 有关支持的 Linux 平台版本的列表以及有关如何在基于 Linux 的计算机上安装最新版本的 PowerShell 的信息,请参阅在 Linux 上安装 PowerShell在微软的网站上。尚未正式支持某些基于 Linux 的操作系统(如 Arch、Kali 和 Raspbian),但提供各种级别的社区支持。

  • 有关支持的 macOS 版本以及如何在 macOS 上安装最新版本的 PowerShell 的信息,请参阅在 macOS 上安装 PowerShell在微软的网站上。

在 Linux 或 macOS 上安装 AWS。工具

您可以在运行 PowerShell Core 6.0 或更高版本的计算机上安装适用于 PowerShell 的 AWS 工具的模块化版本。有关如何安装 PowerShell Core 的信息,请参阅 Microsoft PowerShell 网站上的安装各种版本的 PowerShell

您可以通过以下三种方式之一安装 AWS。Tools:

  • 使用 AWS.Tools.Installer 模块中的 cmdlet。这些区域有:AWS.Tools.Installer模块可以简化其他 AWS.Tools 模块的安装和更新。AWS.Tools.Installer需要、自动下载和安装的更高版本,PowerShellGetAWS.Tools.Installer 模块还会自动保持您的模块版本同步。当您安装或更新到一个模块的较新版本时,AWS.Tools.Installer 中的 cmdlet 会自动将所有其他 AWS.Tools 模块更新为同一版本。

  • AWS.Tools.zip 下载模块并将它们提取到其中一个模块目录中。您可以通过输出 $Env:PSModulePath 变量的值来查找模块目录。

  • 使用 Install-Module cmdlet 从 PowerShell 库安装每个服务模块,如以下过程中所述。

使用模块安装 cmdlet 在 Linux 或 macOS 上安装 AWS。工具的步骤

  1. 通过运行以下命令启动 PowerShell Core 会话。

    $ pwsh
    注意

    除非所处理的任务需要,否则我们建议您不要 以具有提升权限的管理员身份运行 PowerShell。这是因为此操作具有潜在的安全风险,并且不符合最低特权原则。

  2. 要安装模块化 AWS。工具包,使用AWS.Tools.Installer模块中,运行以下命令。

    PS > Install-Module -Name AWS.Tools.Installer Untrusted repository You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y

    如果您收到关于存储库 “不受信任” 的通知,系统会询问您是否仍要安装。输入 y 以允许 PowerShell 安装模块。为了在不信任存储库的情况下避免出现提示并安装模块,您可以运行以下命令。

    PS > Install-Module -Name AWS.Tools.Installer -Force
  3. 现在,您可以为要使用的每个服务安装模块。例如,以下命令将安装 IAM 模块。此命令还会安装指定模块工作所需的任何依赖模块。例如,在安装第一个 AWS.Tools 服务模块时,它还会安装AWS.Tools.Common。这是所有 AWS 服务模块所需的共享模块。它还会删除模块的较早版本,并将其他模块更新到相同的较新版本。

    PS > Install-AWSToolsModule AWS.Tools.EC2,AWS.Tools.S3 -CleanUp Confirm Are you sure you want to perform this action? Performing the operation "Install-AWSToolsModule" on target "AWS Tools version 4.0.0.0". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Installing module AWS.Tools.Common version 4.0.0.0 Installing module AWS.Tools.EC2 version 4.0.0.0 Installing module AWS.Tools.Glacier version 4.0.0.0 Installing module AWS.Tools.S3 version 4.0.0.0 Uninstalling AWS.Tools version 3.3.618.0 Uninstalling module AWS.Tools.Glacier Uninstalling module AWS.Tools.S3 Uninstalling module AWS.Tools.SimpleNotificationService Uninstalling module AWS.Tools.SQS Uninstalling module AWS.Tools.Common
    注意

    Install-AWSToolsModule cmdlet 从名为 PSGalleryPSRepository (https://www.powershellgallery.com/) 下载所有请求的模块,并将存储库视为可信来源。有关此 PSRepository 的更多信息,请使用命令 Get-PSRepository -Name PSGallery

    默认情况下,this将模块安装到$home\Documents\PowerShell\Modulesfolder。要为计算机的所有用户安装 AWS.Tools 模块,您必须在以管理员身份启动的 PowerShell 会话中运行以下命令。这会将模块安装到所有用户都可以访问的 $env:ProgramFiles\PowerShell\Modules 文件夹中。

    PS > Install-AWSToolsModule -Name AWS.Tools.IdentityManagement -Scope AllUsers

在 Linux 或 macOS 上安装 AWSPowerShell。

要升级到更高版本的 AWSPowerShell.NetCore,请按照在 Linux 或 macOS 上更新适用于 PowerShell 的 AWS 工具。首先卸载早期版本的 AWS PowerShell.NetCore。

您可以通过以下两种方式之一安装 AWSPowerShell.NetCore:

  • AWSPowerShell.NetCore.zip 下载模块并将其提取到其中一个模块目录中。您可以通过输出 $Env:PSModulePath 变量的值来查找模块目录。

  • 使用 Install-Module cmdlet 从 PowerShell 库进行安装,如以下过程中所述。

使用模块安装 cmdlet 在 Linux 或 macOS 上安装 AWSPowerShell.NetCore 的步骤

通过运行以下命令启动 PowerShell Core 会话。

$ pwsh
注意

我们建议您不要 通过运行 sudo pwsh 来启动 PowerShell,这将以具有提升管理员权限的身份运行 PowerShell。这是因为此操作具有潜在的安全风险,并且不符合最低特权原则。

要从 PowerShell 库安装 AWSPowerShell.NetCore 单模块程序包,请运行以下命令。

PS > Install-Module -Name AWSPowerShell.NetCore Untrusted repository You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): y

如果您收到关于存储库 “不受信任” 的通知,系统会询问您是否仍要安装。输入 y 以允许 PowerShell 安装模块。为了在不信任存储库的情况下避免出现提示,您可以运行以下命令。

PS > Install-Module -Name AWSPowerShell.NetCore -Force

除非您要为计算机的所有用户安装适用于 PowerShell 的 AWS 工具,否则不必以根用户身份运行此命令。为此,请在您通过 sudo pwsh 启动的 PowerShell 会话中运行以下命令。

PS > Install-Module -Scope AllUsers -Name AWSPowerShell.NetCore -Force

脚本执行

Set-ExecutionPolicy 命令在非 Windows 系统上不可用。您可以运行 Get-ExecutionPolicy,该命令显示在非 Windows 系统上运行的 PowerShell Core 中的默认执行策略设置为 Unrestricted。有关更多信息,请参阅 Microsoft Technet 网站上的关于执行策略

由于PSModulePath包含 AWS 模块的目录的位置,Get-Module -ListAvailablecmdlet 显示了您安装的模块。

AWS。工具

PS > Get-Module -ListAvailable Directory: /Users/username/.local/share/powershell/Modules ModuleType Version Name PSEdition ExportedCommands ---------- ------- ---- --------- ---------------- Binary 3.3.563.1 AWS.Tools.Common Desk {Clear-AWSHistory, Set-AWSHistoryConfiguration, Initialize-AWSDefaultConfiguration, Clear-AWSDefaultConfigurat…

AWSS 强力外壳. 网核

PS > Get-Module -ListAvailable Directory: /Users/username/.local/share/powershell/Modules ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Binary 3.3.563.1 AWSPowerShell.NetCore

将 PowerShell 控制台配置为使用适用于 PowerShell Core 的 AWS 工具(仅限 AWSPowerShell.NetCore)

只要您在模块中运行 cmdlet,PowerShell Core 通常会自动加载模块。但由于其大小较大,因此这不适用于 AWSPowerShell.NetCore。要开始运行 AWSPowerShell。NetCmdlet,您必须首先运行Import-Module AWSPowerShell.NetCore命令。AWS。工具模块中的 cmdlet 不需要此操作。

初始化您的 PowerShell 会话

在安装适用于 PowerShell 的 AWS 工具后,在基于 Linux 或基于 macOS 的系统上启动 PowerShell 时,您必须运行Initialize-AWSDefaultConfiguration以指定要使用的 AWS 访问密钥。有关 Initialize-AWSDefaultConfiguration 的更多信息,请参阅使用 AWS 凭证

注意

在早期的版本(3.96.0 之前)中(适用于 PowerShell 的 AWS 工具)中,该 cmdlet 名为Initialize-AWSDefaults

Versioning

AWS 会定期发布新版本的适用于 PowerShell 的 AWS 工具以支持新的 AWS 服务和功能。要确定您安装的适用于 PowerShell 的 AWS 工具版本,请运行Get-AWSPowerShell 版本cmdlet。

PS > Get-AWSPowerShellVersion AWS Tools for PowerShell Version 4.0.123.0 Copyright 2012-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. Amazon Web Services SDK for .NET Core Runtime Version 3.3.103.22 Copyright 2009-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. Release notes: https://github.com/aws/aws-tools-for-powershell/blob/master/CHANGELOG.md This software includes third party software subject to the following copyrights: - Logging from log4net, Apache License [http://logging.apache.org/log4net/license.html]

要查看当前版本的工具支持的 AWS 服务列表,请将-ListServiceVersionInfo参数设置为Get-AWSPowerShell 版本cmdlet。

PS > Get-AWSPowerShellVersion -ListServiceVersionInfo AWS Tools for PowerShell Version 4.0.123.0 Copyright 2012-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. Amazon Web Services SDK for .NET Core Runtime Version 3.3.103.22 Copyright 2009-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. Release notes: https://github.com/aws/aws-tools-for-powershell/blob/master/CHANGELOG.md This software includes third party software subject to the following copyrights: - Logging from log4net, Apache License [http://logging.apache.org/log4net/license.html] Service Noun Prefix API Version ------- ----------- ----------- AWS Amplify AMP 2017-07-25 AWS App Mesh AMSH 2019-01-25 AWS AppStream APS 2016-12-01 AWS AppSync ASYN 2017-07-25 AWS Auto Scaling Plans ASP 2018-01-06 AWS Batch BAT 2016-08-10 AWS Budgets BGT 2016-10-20 AWS Certificate Manager ACM 2015-12-08 AWS Certificate Manager Private Certificate Authority PCA 2017-08-22 AWS Cloud Directory CDIR 2017-01-11 AWS Cloud HSM HSM 2014-05-30 AWS Cloud HSM V2 HSM2 2017-04-28 AWS Cloud9 C9 2017-09-23 AWS CloudFormation CFN 2010-05-15 AWS CloudTrail CT 2013-11-01 AWS CodeBuild CB 2016-10-06 AWS CodeCommit CC 2015-04-13 ...

要确定您正在运行的 PowerShell 版本,请输入 $PSVersionTable 以查看 $PSVersionTable 自动变量的内容。

PS > $PSVersionTable Name Value ---- ----- PSVersion 6.2.2 PSEdition Core GitCommitId 6.2.2 OS Darwin 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 Platform Unix PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…} PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 WSManStackVersion 3.0

在 Linux 或 macOS 上更新适用于 PowerShell 的 AWS 工具

随着适用于 PowerShell 的 AWS 工具的更高版本的定期发布,您应更新在本地运行的版本。

更新模块化 AWS。工具。 *

要将 AWS.Tools 模块升级到最新版本,请运行以下命令。

PS > Update-AWSToolsModule -CleanUp

此命令将更新所有当前安装的 AWS.Tools 模块,对于那些已成功更新的模块,将删除其早期版本。

注意

Update-AWSToolsModule cmdlet 从名为 PSGalleryPSRepository (https://www.powershellgallery.com/) 下载所有模块,并将其视为可信来源。有关此 PSRepository 的更多信息,请使用命令 Get-PSRepository -Name PSGallery

更新适用于 PowerShell Core 的工具

运行Get-AWSPowerShellVersioncmdlet 以确定您正在运行的版本,并将此版本与适用于 Windows PowerShell 的工具版本进行比较。PowerShell 库网站。我们建议您每两到三个星期检查一次。只有在更新到 Support 新命令和 AWS 服务的版本后,该支持才可用。

在安装更高版本的 AWSPowerShell.NetCore 之前,请卸载现有模块。在卸载现有程序包之前,请关闭任何打开的 PowerShell 会话。运行以下命令来卸载该程序包。

PS > Uninstall-Module -Name AWSPowerShell.NetCore -AllVersions

在卸载程序包后,通过运行以下命令来安装更新的模块。

PS > Install-Module -Name AWSPowerShell.NetCore

安装后,运行命令 Import-Module AWSPowerShell.NetCore 将更新的 cmdlet 加载到 PowerShell 会话中。

相关信息