我使用Red Hat EC2实例来运行AWS CLI命令并使用Glacier和S3管理某些任务。我还正在设计Rest API,以执行我在EC2上部署的脚本。使用Postman将POST请求发送到EC2的公共DNS地址,我的脚本将采用原始JSON并将其解码为PHP脚本将采用的参数。当我尝试在自己的内部执行AWS CLI命令时遇到错误PHP脚本。当我在终端中运行它们时,AWS命令将起作用。
我在此线程中尝试过的事情
https://github.com/aws/aws-cli/issues/3542:
邮递员回应
Traceback (most recent call last):
File "/usr/bin/aws", line 19, in <module>
import awscli.clidriver
File "/usr/lib/python2.7/site-packages/awscli/clidriver.py", line 17, in <module>
import botocore.session
File "/usr/lib/python2.7/site-packages/botocore/session.py", line 30, in <module>
import botocore.credentials
File "/usr/lib/python2.7/site-packages/botocore/credentials.py", line 42, in <module>
from botocore.utils import InstanceMetadataFetcher, parse_key_val_file
File "/usr/lib/python2.7/site-packages/botocore/utils.py", line 31, in <module>
import botocore.httpsession
File "/usr/lib/python2.7/site-packages/botocore/httpsession.py", line 7, in <module>
from urllib3.util.ssl_ import (
ImportError: cannot import name DEFAULT_CIPHERS
Php脚本
exec("aws s3 cp s3://$BucketName /path/to/dir/ --recursive 2>&1",$output,$return);
我希望AWS CLI命令由exec命令执行,并返回一个字符串输出,我将其作为响应发送回去。
答案 0 :(得分:0)
通过运行此命令解决此问题
Q2
答案 1 :(得分:0)
对我来说,这解决了问题:
sudo pip install boto3 --force-reinstall --upgrade
答案 2 :(得分:0)
我也有这个错误信息,但它是由损坏的安装引起的
python-urllib3
yum reinstall python-urllib3
帮我整理好了。最初的原因是因为我们使用 pip
来安装 urllib3 并且 yum 感到困惑。