Appengine remote_api_shell no funciona con las credenciales predeterminadas de la aplicación desde la actualización

Recientemente actualicé mis bibliotecas de gcloud de 118.0.0 a 132.0.0 e inmediatamente remote_api_shell ya no funcionó. Pasé por varias permutaciones para volver a iniciar sesión, para establecer las credenciales predeterminadas de la aplicación a través de gcloud y para usar una cuenta de servicio y una variable de entorno. Todas las permutaciones fallaron con el mismo mensaje de error:

Traceback (most recent call last): File "/Users/mbostwick/google-cloud-sdk/bin/remote_api_shell.py", line 133, in  run_file(__file__, globals()) File "/Users/mbostwick/google-cloud-sdk/bin/remote_api_shell.py", line 129, in run_file execfile(_PATHS.script_file(script_name), globals_) File "/Users/mbostwick/google-cloud-sdk/platform/google_appengine/google/appengine/tools/remote_api_shell.py", line 160, in  main(sys.argv) File "/Users/mbostwick/google-cloud-sdk/platform/google_appengine/google/appengine/tools/remote_api_shell.py", line 156, in main oauth2=True) File "/Users/mbostwick/google-cloud-sdk/platform/google_appengine/google/appengine/tools/remote_api_shell.py", line 74, in remote_api_shell secure=secure, app_id=appid) File "/Users/mbostwick/google-cloud-sdk/platform/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 769, in ConfigureRemoteApiForOAuth rpc_server_factory=rpc_server_factory) File "/Users/mbostwick/google-cloud-sdk/platform/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 839, in ConfigureRemoteApi app_id = GetRemoteAppIdFromServer(server, path, rtok) File "/Users/mbostwick/google-cloud-sdk/platform/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 569, in GetRemoteAppIdFromServer response = server.Send(path, payload=None, **urlargs) File "/Users/mbostwick/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appengine_rpc_httplib2.py", line 259, in Send NeedAuth() File "/Users/mbostwick/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appengine_rpc_httplib2.py", line 235, in NeedAuth RaiseHttpError(url, response_info, response, 'Too many auth attempts.') File "/Users/mbostwick/google-cloud-sdk/platform/google_appengine/google/appengine/tools/appengine_rpc_httplib2.py", line 85, in RaiseHttpError raise urllib2.HTTPError(url, response_info.status, msg, response_info, stream) urllib2.HTTPError: HTTP Error 401: Unauthorized Too many auth attempts. 

Después de volver a revisar 131.0.0 y 130.0.0, volví a 118.0.0, volví a iniciar sesión y todo funcionó bien.

No actualicé la aplicación en ejecución después de actualizar gcloud, ya que estoy en medio de un ciclo de lanzamiento en este momento, por lo que puede haber sido el problema, pero se agradecería cualquier ayuda. ¡Gracias!

TL; DR : esto se solucionó en la versión 134 de gcloud

Respuesta original : Ejecutar

 gcloud auth application-default login --scopes=https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/userinfo.email 

Ahora su shell remoto debería funcionar de nuevo.

Detalles : creo que esto se rompió con la actualización 128.0.0, junto con los cambios en el comando de gcloud auth login . Los tokens antiguos tienen los siguientes ámbitos (según el punto final de tokeninfo de Google):

 https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/appengine.admin https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/plus.me 

Los nuevos tokens del gcloud auth application-default login de gcloud auth application-default login sin ninguna opción solo tienen:

 https://www.googleapis.com/auth/cloud-platform 

Esto se documenta en el gcloud auth application-default login --help

Detalles de la versión 134 : Los scopes solicitados son ahora:

 https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/cloud-platform 

Consulte la discusión en https://groups.google.com/d/msg/google-appengine/ptc-76K6Kk4/9qr4601BBgAJ