Developing Applications on Google Cloud: Adding User Authentication and Intelligence to Your Application Reviews

6351 reviews

Paulo V. · Reviewed 7 أيام ago

Terrible, making us copy and paste into nano is the worst decision you guys have made. Just give us the working code

Noah E. · Reviewed 7 أيام ago

Last step I got this error 8080 main:app [2026-03-25 14:21:52 +0000] [4326] [INFO] Starting gunicorn 23.0.0 [2026-03-25 14:21:52 +0000] [4326] [INFO] Listening at: http://0.0.0.0:8080 (4326) [2026-03-25 14:21:52 +0000] [4326] [INFO] Using worker: sync [2026-03-25 14:21:52 +0000] [4327] [INFO] Booting worker with pid: 4327 [2026-03-25 14:22:42 +0000] [4327] [ERROR] Exception in worker process Traceback (most recent call last): File "/usr/local/lib/python3.12/dist-packages/google/api_core/grpc_helpers.py", line 76, in error_remapped_callable return callable_(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 277, in __call__ response, ignored_call = self._with_call( ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 332, in _with_call return call.result(), call ^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 440, in result raise self File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 315, in continuation response, call = self._thunk(new_method).with_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 1198, in with_call return _end_unary_response_blocking(state, call, True, None) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 1006, in _end_unary_response_blocking raise _InactiveRpcError(state) # pytype: disable=not-instantiable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with: status = StatusCode.UNAVAILABLE details = "Getting metadata from plugin failed with error: string indices must be integers, not 'str'" debug_error_string = "UNKNOWN:Error received from peer {grpc_message:"Getting metadata from plugin failed with error: string indices must be integers, not \'str\'", grpc_status:14}" > The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 147, in retry_target result = target() ^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/timeout.py", line 130, in func_with_timeout return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/grpc_helpers.py", line 78, in error_remapped_callable raise exceptions.from_grpc_error(exc) from exc google.api_core.exceptions.ServiceUnavailable: 503 Getting metadata from plugin failed with error: string indices must be integers, not 'str' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/arbiter.py", line 608, in spawn_worker worker.init_process() File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 135, in init_process self.load_wsgi() File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 147, in load_wsgi self.wsgi = self.app.wsgi() ^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/base.py", line 66, in wsgi self.callable = self.load() ^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py", line 57, in load return self.load_wsgiapp() student_00_76a4d0363ae4@cloudshell:~/bookshelf (qwiklabs-gcp-04-7d6a12cd143e)$ cd ~/bookshelf; EXTERNAL_HOST_URL="https://8080-$WEB_HOST" ~/.local/bin/gunicorn -b :8080 main:app [2026-03-25 14:24:14 +0000] [4424] [INFO] Starting gunicorn 23.0.0 [2026-03-25 14:24:14 +0000] [4424] [INFO] Listening at: http://0.0.0.0:8080 (4424) [2026-03-25 14:24:14 +0000] [4424] [INFO] Using worker: sync [2026-03-25 14:24:14 +0000] [4425] [INFO] Booting worker with pid: 4425 [2026-03-25 14:24:46 +0000] [4425] [ERROR] Exception in worker process Traceback (most recent call last): File "/usr/local/lib/python3.12/dist-packages/google/api_core/grpc_helpers.py", line 76, in error_remapped_callable return callable_(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 277, in __call__ response, ignored_call = self._with_call( ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 332, in _with_call return call.result(), call ^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 440, in result raise self File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 315, in continuation response, call = self._thunk(new_method).with_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 1198, in with_call return _end_unary_response_blocking(state, call, True, None) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 1006, in _end_unary_response_blocking raise _InactiveRpcError(state) # pytype: disable=not-instantiable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with: status = StatusCode.UNAVAILABLE details = "Getting metadata from plugin failed with error: string indices must be integers, not 'str'" debug_error_string = "UNKNOWN:Error received from peer {grpc_status:14, grpc_message:"Getting metadata from plugin failed with error: string indices must be integers, not \'str\'"}" > The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 147, in retry_target result = target() ^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/timeout.py", line 130, in func_with_timeout return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/grpc_helpers.py", line 78, in error_remapped_callable raise exceptions.from_grpc_error(exc) from exc google.api_core.exceptions.ServiceUnavailable: 503 Getting metadata from plugin failed with error: string indices must be integers, not 'str' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/arbiter.py", line 608, in spawn_worker worker.init_process() File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 135, in init_process self.load_wsgi() File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 147, in load_wsgi self.wsgi = self.app.wsgi() ^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/base.py", line 66, in wsgi self.callable = self.load() ^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py", line 57, in load return self.load_wsgiapp() ^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py", line 47, in load_wsgiapp return util.import_app(self.app_uri) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/util.py", line 370, in import_app mod = importlib.import_module(module) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in _gcd_import File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 995, in exec_module File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "/home/student_00_76a4d0363ae4/bookshelf/main.py", line 40, in <module> SECRET_KEY=secrets.get_secret('flask-secret-key'), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/bookshelf/secrets.py", line 14, in get_secret response = client.access_secret_version(name=name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/google/cloud/secretmanager_v1/services/secret_manager_service/client.py", line 1857, in access_secret_version response = rpc( ^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/gapic_v1/method.py", line 131, in __call__ return wrapped_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 294, in retry_wrapped_func return retry_target( ^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 156, in retry_target next_sleep = _retry_error_helper( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_base.py", line 229, in _retry_error_helper raise final_exc from source_exc google.api_core.exceptions.RetryError: Timeout of 60.0s exceeded, last exception: 503 Getting metadata from plugin failed with error: string indices must be integers, not 'str' [2026-03-25 14:24:46 +0000] [4425] [INFO] Worker exiting (pid: 4425) [2026-03-25 14:24:46 +0000] [4424] [ERROR] Worker (pid:4425) exited with code 3 [2026-03-25 14:24:46 +0000] [4424] [ERROR] Shutting down: Master [2026-03-25 14:24:46 +0000] [4424] [ERROR] Reason: Worker failed to boot. student_00_76a4d0363ae4@cloudshell:~/bookshelf (qwiklabs-gcp-04-7d6a12cd143e)$ student_00_76a4d0363ae4@cloudshell:~/bookshelf (qwiklabs-gcp-04-7d6a12cd143e)$ student_00_76a4d0363ae4@cloudshell:~/bookshelf (qwiklabs-gcp-04-7d6a12cd143e)$ student_00_76a4d0363ae4@cloudshell:~/bookshelf (qwiklabs-gcp-04-7d6a12cd143e)$ cd ~/bookshelf; EXTERNAL_HOST_URL="https://8080-$WEB_HOST" ~/.local/bin/gunicorn -b :8080 main:app [2026-03-25 14:27:18 +0000] [4455] [INFO] Starting gunicorn 23.0.0 [2026-03-25 14:27:18 +0000] [4455] [INFO] Listening at: http://0.0.0.0:8080 (4455) [2026-03-25 14:27:18 +0000] [4455] [INFO] Using worker: sync [2026-03-25 14:27:18 +0000] [4456] [INFO] Booting worker with pid: 4456 [2026-03-25 14:27:53 +0000] [4456] [ERROR] Exception in worker process Traceback (most recent call last): File "/usr/local/lib/python3.12/dist-packages/google/api_core/grpc_helpers.py", line 76, in error_remapped_callable return callable_(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 277, in __call__ response, ignored_call = self._with_call( ^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 332, in _with_call return call.result(), call ^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 440, in result raise self File "/usr/local/lib/python3.12/dist-packages/grpc/_interceptor.py", line 315, in continuation response, call = self._thunk(new_method).with_call( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 1198, in with_call return _end_unary_response_blocking(state, call, True, None) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/grpc/_channel.py", line 1006, in _end_unary_response_blocking raise _InactiveRpcError(state) # pytype: disable=not-instantiable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with: status = StatusCode.UNAVAILABLE details = "Getting metadata from plugin failed with error: string indices must be integers, not 'str'" debug_error_string = "UNKNOWN:Error received from peer {grpc_message:"Getting metadata from plugin failed with error: string indices must be integers, not \'str\'", grpc_status:14}" > The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 147, in retry_target result = target() ^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/timeout.py", line 130, in func_with_timeout return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/grpc_helpers.py", line 78, in error_remapped_callable raise exceptions.from_grpc_error(exc) from exc google.api_core.exceptions.ServiceUnavailable: 503 Getting metadata from plugin failed with error: string indices must be integers, not 'str' The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/arbiter.py", line 608, in spawn_worker worker.init_process() File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 135, in init_process self.load_wsgi() File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 147, in load_wsgi self.wsgi = self.app.wsgi() ^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/base.py", line 66, in wsgi self.callable = self.load() ^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py", line 57, in load return self.load_wsgiapp() ^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py", line 47, in load_wsgiapp return util.import_app(self.app_uri) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/gunicorn/util.py", line 370, in import_app mod = importlib.import_module(module) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1387, in _gcd_import File "<frozen importlib._bootstrap>", line 1360, in _find_and_load File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 935, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 995, in exec_module File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed File "/home/student_00_76a4d0363ae4/bookshelf/main.py", line 40, in <module> SECRET_KEY=secrets.get_secret('flask-secret-key'), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/bookshelf/secrets.py", line 14, in get_secret response = client.access_secret_version(name=name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/student_00_76a4d0363ae4/.local/lib/python3.12/site-packages/google/cloud/secretmanager_v1/services/secret_manager_service/client.py", line 1857, in access_secret_version response = rpc( ^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/gapic_v1/method.py", line 131, in __call__ return wrapped_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 294, in retry_wrapped_func return retry_target( ^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_unary.py", line 156, in retry_target next_sleep = _retry_error_helper( ^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.12/dist-packages/google/api_core/retry/retry_base.py", line 229, in _retry_error_helper raise final_exc from source_exc google.api_core.exceptions.RetryError: Timeout of 60.0s exceeded, last exception: 503 Getting metadata from plugin failed with error: string indices must be integers, not 'str' [2026-03-25 14:27:53 +0000] [4456] [INFO] Worker exiting (pid: 4456) [2026-03-25 14:27:54 +0000] [4455] [ERROR] Worker (pid:4456) exited with code 3 [2026-03-25 14:27:54 +0000] [4455] [ERROR] Shutting down: Master [2026-03-25 14:27:54 +0000] [4455] [ERROR] Reason: Worker failed to boot. student_00_76a4d0363ae4@cloudshell:~/bookshelf (qwiklabs-gcp-04-7d6a12cd143e)$

Robson M. · Reviewed 7 أيام ago

Josiah M. · Reviewed 7 أيام ago

Zafer O. · Reviewed 7 أيام ago

Uppaluri V. · Reviewed 7 أيام ago

Pieter-Jan P. · Reviewed 7 أيام ago

Rajat T. · Reviewed 7 أيام ago

Ivan C. · Reviewed 8 أيام ago

The lab description and steps have diferent specification in this section and in the opened lab screen, in both screen there are lack of resource and instrucion is very diffcult to follow up the instructions please help us fixing this and I can re take tha lab.

Juan C. · Reviewed 8 أيام ago

good

Nasib A. · Reviewed 8 أيام ago

Nasib A. · Reviewed 8 أيام ago

Shashwat T. · Reviewed 8 أيام ago

Amit K. · Reviewed 8 أيام ago

Rebaone N. · Reviewed 8 أيام ago

Sharon S. · Reviewed 8 أيام ago

Nicholas H. · Reviewed 8 أيام ago

Ivan C. · Reviewed 9 أيام ago

Suraj A. · Reviewed 9 أيام ago

unnecessary complex with python coding

Osman Ç. · Reviewed 9 أيام ago

Alexey U. · Reviewed 9 أيام ago

Osman Ç. · Reviewed 9 أيام ago

Austin R. · Reviewed 9 أيام ago

Vuyisiwe P. · Reviewed 9 أيام ago

Nithish K. · Reviewed 9 أيام ago

We do not ensure the published reviews originate from consumers who have purchased or used the products. Reviews are not verified by Google.