in terraform-serverless/service/app.py [0:0]
def get_cats(bucket):
images = storage.list_blobs(BUCKET_NAME)
# auth when running a privte function
# https://cloud.google.com/functions/docs/securing/authenticating#functions-bearer-token-example-python
if "cloudfunctions.net" in FUNCTION_NAME:
metadata_server_url = "http://metadata/computeMetadata/v1/instance/service-accounts/default/identity?audience="
token_full_url = metadata_server_url + FUNCTION_NAME
token_headers = {"Metadata-Flavor": "Google"}
token_response = requests.get(token_full_url, headers=token_headers)
jwt = token_response.text
function_headers = {"Authorization": f"bearer {jwt}"}
else:
function_headers = {}
cats = []
for img in images:
resp = requests.get(
FUNCTION_NAME,
params={"bucket": BUCKET_NAME, "resource": img.name},
headers=function_headers,
)
cats.append({"image": img, "data": resp.json()})
return cats