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

在 Linux 或 macOS 上安装Amazon Tools for PowerShell

本主题提供有关如何在 Linux 或 macOS 上安装Amazon Tools for PowerShell的说明。

设置概述

若要在 Linux 或 macOS 计算机上安装Amazon Tools for PowerShell,可以从两个程序包选项中选择:

  • AWS.Tools – Amazon Tools for PowerShell 的模块化版本。每个 Amazon 服务都由其自己的小模块以及共享的支持模块 AWS.Tools.Common 提供支持。

  • AWSPowerShell.NetCore – Amazon Tools for PowerShell 的单一大模块版本。所有 Amazon 服务都由这个单一大模块支持。

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

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

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

  3. 安装 AWS.Tools 或 AWSPowerShell.NetCore。

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

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

Prerequisites

确保您满足设置Amazon Tools for PowerShell的先决条件上列出的要求。

若要运行 Amazon Tools for PowerShell Core,您的计算机必须运行 PowerShell Core 6.0 或更高版本。

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

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

在 Linux 或 macOS 上安装 AWS.Tools

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

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

  • 使用 AWS.Tools.Installer 模块中的 cmdlet。AWS.Tools.Installer 模块简化了其他 AWS.Tools 模块的安装和更新。AWS.Tools.Installer 需要使用更新版本的 PowerShellGet 并会自动下载和安装它。AWS.Tools.Installer 模块还会自动保持您的模块版本同步。当您安装或更新到一个模块的较新版本时,AWS.Tools.Installer 中的 cmdlet 会自动将所有其他 AWS.Tools 模块更新为同一版本。

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

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

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

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

    $ pwsh
    注意

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

  2. 要使用 AWS.Tools 模块安装模块化的 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。这是所有 Amazon 服务模块所需的共享模块。它还会删除模块的较早版本,并将其他模块更新到相同的较新版本。

    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 从名为 PSRepositoryPSGallery (https://www.powershellgallery.com/) 下载所有请求的模块,并将存储库视为可信来源。有关此 Get-PSRepository -Name PSGallery 的更多信息,请使用命令 PSRepository

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

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

在 Linux 或 macOS 上安装 AWSPowerShell.NetCore

要升级到 AWSPowerShell.NetCore 的更高版本,请按照 在 Linux 或 macOS 上更新 Amazon Tools for PowerShell 中的说明操作。首先卸载旧版本的 AWSPowerShell.NetCore。

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

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

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

使用 Install-Module 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

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

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

脚本执行

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

由于 PSModulePath 包含 Amazon 模块的目录的位置,因此 Get-Module -ListAvailable cmdlet 将显示您安装的模块。

AWS.Tools

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…

AWSPowerShell.NetCore

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

配置 PowerShell 控制台以使用 Amazon Tools for PowerShell Core(仅限 AWSPowerShell.NetCore)

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

初始化您的 PowerShell 会话

在安装完 Amazon Tools for PowerShell 并在基于 Linux 或基于 macOS 的系统上启动 PowerShell 时,您必须运行 Initialize-AWSDefaultConfiguration 来指定要使用的 Amazon 访问密钥。有关 Initialize-AWSDefaultConfiguration 的更多信息,请参阅 使用 Amazon 凭证

注意

在早期的 Amazon Tools for PowerShell 版本(3.3.96.0 之前)中,该 cmdlet 名为 Initialize-AWSDefaults

Versioning

Amazon 定期发布Amazon Tools for PowerShell的新版本,以支持新的 Amazon 服务和功能。要确定您安装的Amazon Tools for PowerShell版本,请运行 Get-AWSPowerShellVersion cmdlet:

PS > Get-AWSPowerShellVersion 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]

要查看当前版本的工具支持的 Amazon 服务列表,请将 -ListServiceVersionInfo 参数添加到 Get-AWSPowerShellVersion cmdlet。

要确定您正在运行的 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 上更新 Amazon Tools for PowerShell

随着Amazon Tools for PowerShell的更新版本定期发布,您应更新在本地运行的版本。

更新模块化 AWS.Tools。*

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

PS > Update-AWSToolsModule -CleanUp

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

注意

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

更新 Tools for PowerShell Core

运行 Get-AWSPowerShellVersion cmdlet 以确定您正在运行的版本,并将此版本与 PowerShell 库网站中提供的 Tools for Windows PowerShell 版本进行比较。我们建议您每两到三个星期检查一次。只有在更新到支持新命令和 Amazon 服务的版本后,该支持才可用。

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

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

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

PS > Install-Module -Name AWSPowerShell.NetCore

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

相关信息