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

使用CLI部署DotNet WebAPI至AWS Lambda时遇IAM凭证错误

解决AWS CLI部署DotNet WebAPI到Lambda的凭证错误

问题分析

执行dotnet lambda deploy-function时出现Unable to get IAM security credentials from EC2 Instance Metadata Service错误,说明CLI默认尝试从EC2实例元数据服务获取凭证,但本地环境并非EC2实例,同时可能存在本地凭证配置未被正确识别的情况。

修复步骤

  • 检查本地AWS凭证文件
    确认~/.aws/credentials(Linux/macOS)或C:\Users\<你的用户名>\.aws\credentials(Windows)文件中存在正确的凭证条目,格式如下:

    [default]
    aws_access_key_id = 你的访问密钥ID
    aws_secret_access_key = 你的秘密访问密钥
    

    若使用了非默认配置文件,部署时需指定--profile参数:

    dotnet lambda deploy-function --profile 你的配置文件名
    
  • 验证环境变量配置
    检查本地是否正确设置了AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY环境变量:

    • Linux/macOS终端执行:
      echo $AWS_ACCESS_KEY_ID
      echo $AWS_SECRET_ACCESS_KEY
      
    • Windows PowerShell执行:
      $env:AWS_ACCESS_KEY_ID
      $env:AWS_SECRET_ACCESS_KEY
      

    若未设置,手动添加后重新运行部署命令。

  • 禁用EC2元数据服务自动检测
    本地机器无需从EC2元数据服务获取凭证,设置环境变量禁用该检测:

    • Linux/macOS:
      export AWS_EC2_METADATA_DISABLED=true
      dotnet lambda deploy-function
      
    • Windows PowerShell:
      $env:AWS_EC2_METADATA_DISABLED = "true"
      dotnet lambda deploy-function
      
  • 更新相关工具版本
    旧版本的DotNet Lambda工具或AWS CLI可能存在凭证处理bug,更新到最新版:

    # 更新DotNet Lambda工具
    dotnet tool update -g Amazon.Lambda.Tools
    # 检查AWS CLI版本,过旧则按官方指引更新
    aws --version
    
  • 确认IAM用户权限
    确保用于部署的IAM用户拥有lambda:GetFunction、lambda:UpdateFunctionCode、iam:PassRole等权限,可临时附加AWSLambdaFullAccess策略测试,之后再调整为最小权限策略。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 16:32:43