def get_cats()

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