¿Cuál es la forma más sencilla de usar la gcloudlínea de comandos de forma no interactiva con una cuenta de servicio fuera de GCE? Preferiblemente sin ensuciar el sistema de archivos con archivos de credenciales, que es lo que gcloud auth activate-service-account --key-file=...hace.
Hay muchos casos de uso para usar gcloudcon una cuenta de servicio. Por ejemplo, en un servidor, me gustaría probar que GOOGLE_APPLICATION_CREDENTIALSestá configurado correctamente y tiene los permisos necesarios antes de ejecutar mi aplicación. O, me gustaría ejecutar algunos scripts de configuración o scripts cron que realicen alguna comprobación con la gcloudlínea de comando.
Las bibliotecas de Google Cloud (por ejemplo , python , java ) usan automáticamente la variable de entorno GOOGLE_APPLICATION_CREDENTIALSpara autenticarse en Google Cloud. Pero desafortunadamente, esta línea de comando parece no tener efecto gcloud. ¿Cuál es una forma limpia de usar gclouddejando el sistema de archivos intacto?
$ GOOGLE_APPLICATION_CREDENTIALS=/etc/my-service-account-4b4b6e63aaed.json gcloud alpha pubsub topics publish testtopic hello
ERROR: (gcloud.alpha.pubsub.topics.publish) You do not currently have an active account selected.
Please run:
$ gcloud auth login
to obtain new credentials, or if you have already logged in with a
different account:
$ gcloud config set account ACCOUNT
to select an already authenticated account to use.