Google App Engine - permissão negada para proxy / encapsulamento no servidor de desenvolvimento

Disclaimer: este não é um duplicado!

Estou usando a biblioteca de solicitações, um macaco corrigido no ambiente padrão GAE e tudo funciona perfeitamente, exceto nos momentos em que adiciono o extraproxy argumento para a chamada de solicitação. Essa coisa de proxy implica operações de encapsulamento e soquete que são desativadas por padrão pela configuração padrão dos ambientes de desenvolvimento e implantação:

NotImplementedError: HTTP CONNECT Tunnelling is not supported https://pastebin.com/YDsG9we7

Bom, precisamos habilitar o suporte a soquetes reais em nossa plataforma GAE, adicionando, portanto:

env_variables: GAE_USE_SOCKETS_HTTPLIB : "True"

E mesmo sem fazer o patch de macaco de cinto de ferramentas de solicitações (sem usar urlfetch), obtemos uma permissão negada:https://pastebin.com/ifBFKi3K

Isso geralmente acontece quando a sandbox pensa que você está acessando um local ou porta proibida do servidor, mas o proxy é totalmente funcional e, adivinhe, eu testeio mesmo código (sem nenhuma funcionalidade adicionada / removida devido ao desenvolvimento ou implantação do servidor como ambiente atual) e funciona da maneira esperada na implantação, sem nenhum tipo dePermission denied erros, fazendo com que a solicitação seja completamente bem-sucedida (se tentarmos sem os soquetes de enableplib ativados, ainda assim obteremosTunnelling is not supported erro nos dois cenários e esse é o comportamento esperado).

Agora, eu tenho uma solução funcional na implantação (que é o que realmente importa), mas isso não é suficiente para mim, eu só quero testar essas solicitações por meio de proxies no meu servidor e ambiente de desenvolvimento também. que tentei fazer é o seguinte:

vamos importar nossa própria biblioteca de sockets padrão aplicando estes:"ImportError: nenhum módulo chamado _ssl" com dev_appserver.py do Google App Engineo macaco não pode corrigir o arquivo sandbox.py para obter uma lista branca_sockets e_ssl etc, não há problema, eu corrigi isso diretamente no disco no arquivo originalsubstituindo na memória os soquetes padrão, as importações initplib etc. pelos python padrãoQUESTÃO: ValueError: select only supported on socket objects. https://pastebin.com/gHFM6QiF ; e isso é esperado de alguma forma, pois o objeto de soquete esperado é diferente do esperado devido ao padrãosockets importar, mas próprio GAEselect (e removendo select da memória do intérprete causará mais problemas ou não funcionará), então, desejo substituir oselect módulo (que é interno) também com o python padrão, como posso fazer isso?

Deixa pra lá...

Existe algum método pelo qual esse pesadelo vai terminar e ainda usar o ambiente padrão? Se ele funciona no servidor de implantação sem nenhuma correção, por que também não deve funcionar com a ferramenta dev_appserver?

Eu só não quero fazer mais correções, só quero superar issoPermission denied erro que não é lançado no servidor de implantação remota, usando a mesma lógica de código, independentemente de usarmos solicitações, busca de url ,ttttplib, soquetes etc. (apenas a coisa de encapsulamento necessária do proxy).

questionAnswers(1)

yourAnswerToTheQuestion