php小编香蕉在本文中将为大家介绍如何使用AWS CLI命令行工具来打开浏览器并等待响应后再继续执行其他操作。AWS CLI是亚马逊提供的用于管理AWS云服务的命令行工具,它可以通过命令行界面来执行各种AWS操作。在某些情况下,我们可能需要在命令行中打开浏览器,并等待用户完成某些操作后再继续执行后续命令。本文将详细介绍如何使用AWS CLI实现这个功能,让你的命令行操作更加灵活和便捷。
问题内容
我正在尝试为我的公司构建一个 golang cli 工具,并将其作为该工具构建登录和其他一些功能的一部分。我一生都无法弄清楚 AWS 如何能够打开浏览器窗口并等待单击几次按钮,然后再从 CLI 继续操作。
https://docs.aws.amazon.com/singlesignon/latest/OIDCAPIReference/API_StartDeviceAuthorization.html
这是我输入的 CLI 命令
aws sso login --profile login
Attempting to automatically open the SSO authorization page in your default browser.
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:
https://device.sso.us-east-1.amazonaws.com/
Then enter the code:
abcd-efgh
Successfully logged into Start URL: https://d-1421421423.awsapps.com/start
这里还有用于启动设备身份验证和创建令牌的 Python 文档
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sso-oidc/client/start_device_authorization.html https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sso-oidc/client/create_token.html
解决方法
我刚刚组合在一起的一个似乎有效的选项是一个每秒检查一次的循环
for attempts <= 30 {
fmt.Println(attempts)
token, err := idc.CreateToken(context.TODO(), &createTokenInput)
if err != nil {
// if debug is enabled show error
log.Debug(err.Error())
attempts++
// wait 1 second
time.Sleep(1 * time.Second)
} else {
response = *token
break
}
}
编辑:
运行 AWS sso login —debug
后,我注意到日志实际上在循环并一遍又一遍地运行 createToken 查询,因此 AWS 正在执行与上述类似的操作。
以上就是AWS CLI 如何打开浏览器并等待响应然后再继续?的详细内容,更多请关注编程网其它相关文章!