Google app engine 应用程序引擎灵活+;应用程序标识(Python)
是否有方法移植的功能Google app engine 应用程序引擎灵活+;应用程序标识(Python),google-app-engine,google-app-engine-python,Google App Engine,Google App Engine Python,是否有方法移植的功能 from google.appengine.api import app_identity from google.appengine.api import urlfetch 在灵活的环境中 我有一个在flex环境上运行的服务,它需要向标准环境发出请求,并希望使用App Engine的本机应用程序标识和X-Appengine-Inbound-Appid头来执行此操作 似乎如果请求的来源是标准环境,那么报头会传递到flex环境,而不是相反的方式?更新:在这种情况下不可能使用
from google.appengine.api import app_identity
from google.appengine.api import urlfetch
在灵活的环境中
我有一个在flex环境上运行的服务,它需要向标准环境发出请求,并希望使用App Engine的本机应用程序标识和X-Appengine-Inbound-Appid
头来执行此操作
似乎如果请求的来源是标准环境,那么报头会传递到flex环境,而不是相反的方式?更新:在这种情况下不可能使用
X-Appengine-Inbound-Appid
报头,因为正如您所观察到的,按照建议的实验,在柔性环境服务的出口侧专门设置后,在标准环境服务的入口侧移除:
原职:
发件人:
在灵活的环境中运行时,您可以使用
以及获取有关您的申请的信息:
应用程序/项目ID
GCLOUD\u项目环境变量或
元数据服务器中的/project/project id资源
因此,您可以尝试如上所述在flex env服务中获取应用程序ID,并手动设置X-Appengine-Inbound-Appid
响应头。它可能不会在标准env服务的入口端删除(中没有明确提到要删除)
对于urlfetch移植,来自:
灵活的环境没有沙箱限制,因此您可以使用
任何HTTP库。我们建议使用
因此,请检查为您决定使用的HTTP库设置响应头的具体方法。Hi Dan,谢谢您的快速回答。我已经实际尝试了这个方法,并使用python请求库手动设置了
X-Appengine-Inbound-Appid
。然而,一旦标准环境接收到请求,这个头就会被剥离。很抱歉听到这个消息。我更新了答案以反映您的验证。我还打算建议隔离该特定URL的处理程序,并在std env服务的.yaml
文件中使用login:admin
对其进行保护,但这似乎无效,请参阅我确实考虑了登录:admin,但是除非URLFACH库可以导入并直接在Flex环境中使用,这似乎是无效的,正如您所提到的,标准Env只会导致重定向到授权页。现在,我已经使用了类似于OAuth令牌的东西来帮助保护请求。是的,这样的令牌可以工作。事情有点复杂,但目前似乎没有替代方案。