Code samples

requests

curl "http://metadata.google.internal/computeMetadata/v1/project/{item_name}" \
-H "Metadata-Flavor: Google"
# refer https://cloud.google.com/compute/docs/storing-retrieving-metadata#api_3
import requests

    endpoint = 'http://metadata.google.internal'
    path = '/computeMetadata/v1/project/'
    path += item_name
    response = requests.get(
        '{}{}'.format(endpoint, path),
        headers={'Metadata-Flavor': 'Google'}
    )
    metadata = response.text
    return metadata

JWT

JWT assertion is used to decode email and persistent Id.

# code taken from https://cloud.google.com/python/docs/getting-started/authenticate-users#app-managed_authentication
from jose import jwt

    try:
        info = jwt.decode(
            assertion,
            certs(),
            algorithms=['ES256'],
            audience=audience()
            )
        return info['email'], info['sub']
    except Exception as e:
        print('Failed to validate assertion: {}'.format(e), file=sys.stderr)
        return None, None
#random code
user_id = request.headers.get('X-Goog-Authenticated-User-ID')
assertion = request.headers.get('X-Goog-IAP-JWT-Assertion')

Pattern match

# matches lines like:
# 2018-02-13 22:30:41,701 6538b6ae MainThread pgbench(1/9) ...
stream_match = re.match(r'^\d\d\d\d-\d\d-\d\d .*?Thread'
                        r'.*?\((\d*)\/\d*\)', line)

# matches lines like (one line):
# 2018-02-14 17:59:57,297 6538b6ae MainThread pkb.py:856 INFO
# Benchmark run statuses:
end_match = re.match(r'^\d\d\d\d-\d\d-\d\d.*'
                     r'Benchmark run statuses:', line)

login via terminal

gcloud auth login --no-launch-browser

firebase login --no-localhost

Last updated

Was this helpful?