Skip to content

Instantly share code, notes, and snippets.

View davidwtbuxton's full-sized avatar

David Buxton davidwtbuxton

View GitHub Profile
@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.
@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 / app.yaml
Last active August 31, 2023 11:17
Serve a Google-looking 404 page for all requests
# For App Engine.
runtime: python311
# 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
Created September 8, 2021 10:43
Python App Engine test for the Firebase Admin SDK list users API
runtime: python38
@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 / 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,
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@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
@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'