awscli iam 更新角色调用错误地声称缺少所需的参数

Per*_*man 2 amazon-web-services aws-cli

此 AWS 页面建议进行以下调用:

$ aws iam update-role -–role-name ADFS-Production -–max-session-duration 14400
Run Code Online (Sandbox Code Playgroud)

当我运行这个(替换正确的角色名称)时,我得到

aws: error: the following arguments are required: --role-name
Run Code Online (Sandbox Code Playgroud)

这很令人困惑,因为论点就在那里!

$ aws --version
Run Code Online (Sandbox Code Playgroud)

在我的机器上给出

aws-cli/1.14.69 Python/3.6.4 Darwin/16.3.0 botocore/1.9.22
Run Code Online (Sandbox Code Playgroud)

我尝试使用调试器单步执行 arg 解析,看起来问题可能在于 option_string_actions 列表没有正确填充:

/usr/local/Cellar/python/3.6.4_3/Frameworks/Python.framework/Versions/3.6/lib/python3.6/argparse.py(2093)_parse_optional()
-> if arg_string in self._option_string_actions:
(Pdb) l
2088            # if it doesn't start with a prefix, it was meant to be positional
2089            if not arg_string[0] in self.prefix_chars:
2090                return None
2091    
2092            # if the option string is present in the parser, return the action
2093 ->         if arg_string in self._option_string_actions:
2094                action = self._option_string_actions[arg_string]
2095                return action, arg_string, None
2096    
2097            # if it's just a single character, it was meant to be positional
2098            if len(arg_string) == 1:
(Pdb) self._option_string_actions
{}
Run Code Online (Sandbox Code Playgroud)

但它相当复杂,所以很难确定。有任何想法吗?

kri*_*004 5

我运行了您的命令,但您的--. 你能试试下面的命令吗(我只改变了你的--

aws iam update-role --role-name ADFS-Production --max-session-duration 14400
Run Code Online (Sandbox Code Playgroud)