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

使用awscliv2执行sts命令返回127错误,请求排查原因

排查AWS CLI v2命令返回错误码127的原因

以下是几个常见的排查方向和解决方法:

  • 脚本与交互式Shell的PATH环境变量不一致
    交互式Shell的PATH包含目标路径,但脚本可能运行在非交互式环境(比如cron、CI/CD或其他启动方式),导致PATH被重置。

    • 解决:在脚本开头手动添加路径:
      export PATH="/Library/Frameworks/Python.framework/Versions/3.11/bin:$PATH"
      
      或者直接使用命令的绝对路径执行:
      ACCOUNT_ID=`/Library/Frameworks/Python.framework/Versions/3.11/bin/awscliv2 --region ${S3_REGION} sts get-caller-identity | jq '.Account' | tr -d '"'`
      
    • 验证:在脚本中加入以下命令,对比交互式Shell的输出:
      echo "Script PATH: $PATH"
      which awscliv2
      
  • 脚本执行用户与交互式用户不同
    如果脚本是用sudo或其他用户身份运行,该用户的PATH可能不包含目标路径,或者没有awscliv2的执行权限。

    • 验证:在脚本中加入以下命令,确认执行用户和文件权限:
      whoami
      ls -l /Library/Frameworks/Python.framework/Versions/3.11/bin/awscliv2
      
    • 解决:如果是权限问题,执行chmod +x /Library/Frameworks/Python.framework/Versions/3.11/bin/awscliv2;如果是用户PATH问题,同样添加路径或用绝对路径。
  • awscliv2是别名而非实际可执行文件
    交互式Shell中which awscliv2的输出可能是一个别名,而非真实的可执行文件路径。

    • 验证:在交互式Shell中执行:
      type awscliv2
      
      如果输出显示是别名,脚本无法直接使用该别名,建议改用真实命令的绝对路径。
  • 脚本使用的Shell解释器与交互式Shell不同
    比如脚本开头用#!/bin/sh,而你平时用的是bash,不同Shell的PATH加载逻辑可能有差异。

    • 解决:修改脚本开头的Shebang为#!/bin/bash,或者确保sh环境的PATH包含目标路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:05:18