You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DOS命令行执行AWS SAM Build访问Sonatype Nexus遇401未授权错误

解决SAM Build时Sonatype Nexus NuGet源401未授权问题

问题背景

我们公司使用Sonatype Nexus Repository Server获取NuGet包,当前SAM CLI版本为1.124.0。已通过DOS命令添加Nexus作为NuGet源:

nuget sources add -Name "Nexus" -Source "https://yadablahyadaSonatypeNexusRepositoryServerblahyada:8443/repository/nuget-dll/" -username "[ Blah Blah Assigned Nexus username Yada Yada]" -password "[Blah BlahNexus password Yada Yada]"

但执行sam build时出现401未授权错误,错误详情:

C:\YadaBlahBlah\BlahYadaBlahtestprojects\src\Lambda>sam build Building codeuri: C:\YadaBlahBlah\BlahYadaBlahtestprojects\src\Lambda runtime: dotnet6 architecture: x86_64 functions: LclStkExperimentLambda Workflow DotnetCliPackageBuilder does not support value "False" for building in source. Using default value "True".  Running DotnetCliPackageBuilder:GlobalToolInstall

Build Failed Error: DotnetCliPackageBuilder:GlobalToolInstall - Error configuring the Amazon.Lambda.Tools .NET Core Global Tool: Dotnet CLI Failed: Unhandled exception: Failed to fetch results from V2 feed at 'https://yadablahyadaSonatypeNexusRepositoryServerblahyada:8443/repository/nuget-dll/FindPackagesById()?id='amazon.lambda.tools'&semVerLevel=2.0.0' with following message : Response status code does not indicate success: 401 (Unauthorized).

解决步骤

1. 修正NuGet源的凭据格式

你添加源时的用户名和密码包含多余的方括号与空格,直接导致认证失败。重新执行添加命令,去掉不必要的符号:

nuget sources add -Name "Nexus" -Source "https://yadablahyadaSonatypeNexusRepositoryServerblahyada:8443/repository/nuget-dll/" -username "你的Nexus用户名" -password "你的Nexus密码"

执行完成后用nuget sources list确认源配置,确保用户名正确、密码显示为***。

2. 验证Nexus仓库权限与包可用性

  • 登录Sonatype Nexus后台,检查nuget-dll仓库的权限设置:确认你的账号拥有该仓库的读取权限。
  • 如果是代理仓库,检查上游NuGet源是否配置正确,确保Amazon.Lambda.Tools能被Nexus正常拉取并缓存。
  • 部分场景下Nexus支持API密钥认证,可尝试用API密钥代替密码重新配置源。

3. 确保Dotnet CLI读取正确的NuGet配置

SAM Build调用dotnet CLI时可能未加载用户级配置,需手动确认全局NuGet配置文件:

  • 找到Windows系统下的全局配置文件:%APPDATA%\NuGet\NuGet.Config
  • 打开文件,确认包含Nexus源的凭据配置,示例如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="Nexus" value="https://yadablahyadaSonatypeNexusRepositoryServerblahyada:8443/repository/nuget-dll/" />
  </packageSources>
  <packageSourceCredentials>
    <Nexus>
      <add key="Username" value="你的Nexus用户名" />
      <add key="ClearTextPassword" value="你的Nexus密码" />
    </Nexus>
  </packageSourceCredentials>
</configuration>

保存后执行dotnet restore测试包拉取,再重新运行sam build。

4. 手动安装Amazon.Lambda.Tools全局工具

绕过SAM自动安装流程,手动安装工具:

dotnet tool install -g Amazon.Lambda.Tools --source "Nexus"

安装成功后,SAM会直接使用已安装的工具,无需再次拉取。

5. 检查用户上下文一致性

确保添加NuGet源的用户与运行SAM CLI的用户一致,避免管理员/普通用户权限隔离导致配置无法读取。如果之前在管理员命令行添加源,切换到对应用户重新添加。

内容的提问来源于stack exchange,提问作者crazyTech

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 12:55:55