Skip to content

Instantly share code, notes, and snippets.

View davidwtbuxton's full-sized avatar

David Buxton davidwtbuxton

View GitHub Profile
@davidwtbuxton
davidwtbuxton / example.py
Created December 20, 2018 11:39
Sending data to PubSub on App Engine standard 2.7
import base64
import json
# Install google-api-python-client for Py27
import googleapiclient.discovery
def publish(data):
# The PubSub topic is created beforehand.
topic = 'projects/my-app-engine-project/topics/my-topic'
@davidwtbuxton
davidwtbuxton / fields.py
Created December 15, 2019 22:11
Other approaches to obfuscating a value
# https://github.com/potatolondon/django-gcloud-connectors/blob/b5279492b5b4b615640efa7cc5783a2cee0c1cbe/gcloudc/forms/fields.py#L145
import base64
import itertools
_VC_KEY = "1K94KG8L" # Fixed key, don't change this!!
def model_path(obj):
return obj._meta.db_table
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@davidwtbuxton
davidwtbuxton / main.py
Last active August 5, 2020 13:40
Getting an auth token with custom scopes for the default service account on Google App Engine's Python 3 runtime
# Copyright David Buxton 2020
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
@davidwtbuxton
davidwtbuxton / app.yaml
Created March 23, 2021 18:33
Example of App Engine static website with Python redirect handler
runtime: python37
handlers:
# Redirect / and /my-example-project to /my-example-project/. Requires Python.
- url: /(my-example-project)?$
script: auto
secure: always
# The static assets are collected in a "dist" folder.
@davidwtbuxton
davidwtbuxton / app.yaml
Created September 8, 2021 10:43
Python App Engine test for the Firebase Admin SDK list users API
runtime: python38
# Setup for Ubuntu 20.04
# ======================
# Install Nomad, Consul, Docker
# -----------------------------
# GPG keys for Nomad and Docker.
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
@davidwtbuxton
davidwtbuxton / app.yaml
Last active August 31, 2023 11:17
Serve a Google-looking 404 page for all requests
# For App Engine.
runtime: python311
@davidwtbuxton
davidwtbuxton / googlememcached.py
Created September 24, 2024 08:22
Cache backend for Python 3 + Django using App Engine's built-in memcached service
# You need to enable `app_engine_apis: true` to use the built-in memcache
# service on App Engine standard.
# https://github.com/GoogleCloudPlatform/appengine-python-standard
#
# Then configure a custom cache backend.
# https://docs.djangoproject.com/en/5.1/ref/settings/#backend
import logging
from django.core.cache.backends.memcached import BaseMemcachedCache
@davidwtbuxton
davidwtbuxton / cloudbuild.yaml
Created November 7, 2024 15:23
Google Cloud Build steps to run Django database migrations against Cloud SQL
steps:
- id: build-temp-image
name: gcr.io/cloud-builders/docker
script: |
#!/usr/bin/env bash
set -o errexit -o nounset -o pipefail
# A custom image with Python + cloud-sql-proxy. We can then use this for
# connecting to the database when running django commands.