Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过由于代理而未授权的python脚本向API网关发送GET请求_Python_Amazon Web Services_Python 3.6 - Fatal编程技术网

通过由于代理而未授权的python脚本向API网关发送GET请求

通过由于代理而未授权的python脚本向API网关发送GET请求,python,amazon-web-services,python-3.6,Python,Amazon Web Services,Python 3.6,我为客户机设置了一个S3存储桶,其中包含一些数据,并希望为客户机提供一个他们只需执行的python脚本,然后下载他们需要的特定文件 为此,我构建了一个返回下载链接的Lambda函数,以及一个通过GET请求触发Lambda函数的API网关 当我在浏览器中访问url时,我会得到预期的请求,但如果我访问了请求,则会得到预期的请求 {"Message":"User: anonymous is not authorized to perform: execute-api:Invoke on resourc

我为客户机设置了一个S3存储桶,其中包含一些数据,并希望为客户机提供一个他们只需执行的python脚本,然后下载他们需要的特定文件

为此,我构建了一个返回下载链接的Lambda函数,以及一个通过GET请求触发Lambda函数的API网关

当我在浏览器中访问url时,我会得到预期的请求,但如果我访问了请求,则会得到预期的请求

{"Message":"User: anonymous is not authorized to perform: execute-api:Invoke on resource: arn:aws:execute-api:eu-central-1:********:<api>/<stage>/GET/<method>}
{“Message”:“用户:匿名未被授权对资源执行:execute api:Invoke:arn:aws:execute api:eu-central-1:*********:///GET//”
我的脚本如下所示:

import requests
import sys


proxy = 'myproxy:myport'
username = ''
password = ''
username, password = sys.argv[1], sys.argv[2]

https_proxy = 'https://' + username + ':' + password + '@' + proxy
http_proxy = 'http://' + username + ':' + password + '@' + proxy


proxy = {'https': https_proxy,
         'http': http_proxy}

session = requests.Session()

session.proxies = proxy

r = session.get('https://<my-api-link>')
fileDict = r.json()

print(fileDict)
导入请求
导入系统
proxy='myproxy:myport'
用户名=“”
密码=“”
用户名,密码=sys.argv[1],sys.argv[2]
https_proxy='https://'+用户名+':'+密码+'@'+代理
http_proxy='http://'+username+':'+password+'@'+proxy
proxy={'https':https\u proxy,
“http”:http\u proxy}
会话=请求。会话()
session.proxy=代理
r=session.get('https://')
fileDict=r.json()
打印(fileDict)
我设置了API网关的资源策略,将我公司和客户的外部IP列入白名单。我再次确认了这一点,在浏览器中输入API url并获得预期结果。我只希望它通过脚本工作

有趣的是——当我在家里尝试它时,我没有支持代理,它起了作用(当然,我之前将我的ip列入了白名单)

有没有办法解决这个问题? 谢谢