我正在将 Visual Studio Code 与 AWS cli 版本 2.9.13 一起使用,我配置了一个 SSO 配置文件,我用它来使用设备代码身份验证对 AWS 服务进行身份验证 - 然后我可以使用此配置文件连接到我们的 AWS代码提交存储库但是,当尝试调用任何 AWS PowerShell cmdlet 时,我收到返回以下错误;
Assembly AWSSDK.SSOOIDC could not be found or loaded. This assembly must be available at runtime to use Amazon.Runtime.Internal.SSOServiceClientHelpers, AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604.
每次使用profile参数时都会返回此错误,如下所示
-ProfileName MySSOProfile
到目前为止我做了什么;
我需要做什么来解决此错误,以便我可以使用经过身份验证的 AWS 配置文件来调用 AWS cmdlet?
从 AWS Tools for PowerShell 的
4.1.538
版本开始,您可以使用新的 PowerShell cmdlet,而不必依赖 AWS CLI。依赖项也包含在 AWS.Tools.Common
中,因此您不再需要显式导入 AWS.Tools.SSO
和 AWS.Tools.SSOOIDC
。
Invoke-AWSSSOLogin -ProfileName MySSOProfile
# Now we can invoke cmdlets using the SSO profile
Get-S3Bucket -ProfileName MySSOProfile
使用 .NET 开发工具包或适用于 PowerShell 的 AWS 工具中的 SSO 凭证需要依赖于开发工具包自己的 SSO 和 SSOOOIDC mdoule。
Install-Module AWS.Tools.Installer
Install-AWSToolsModule S3, SSO, SSOOIDC
# Since we're not invoking a cmdlet from these modules directly,
# we must import them explicitly
Import-Module AWS.Tools.SSO
Import-Module AWS.Tools.SSOOIDC
# AWS Tools for PowerShell doesn't support the SSO login flow yet, so login with the CLI
aws sso login --profile MySSOProfile
# Now we can invoke cmdlets using the SSO profile
Get-S3Bucket -ProfileName MySSOProfile