Jump to content

Nova Resource:Google-api-proxy/Documentation

From Wikitech

Google-api-proxy provides a static IP for communication with the Google Custom Search API.

Usage

  1. Get the Wikimedia Google API key from Community Tech
  2. Use https://google-api-proxy.wmflabs.org/ instead of https://www.googleapis.com/ when interacting with Google's Custom Search JSON/Atom API.

How it works

https://google-api-proxy.wmflabs.org is a Cloud VPS web proxy pointing at an instance in the google-api-proxy project with a static IP address. The instance is running an Nginx web server configured as a reverse proxy. All HTTP requests sent to this proxy will be relayed to https://www.googleapis.com and the upstream response will be provided back to the requesting client. Details of the Nginx configuration are available in our Puppet repo's role::labs::google_api_proxy module.

API keys using this proxy will need to whitelist the IP address 185.15.56.54 in the Google developer console.

Google OCR for Wikisource uses a similar proxy at https://googlevision-api-proxy.wmflabs.org/ that allows access to the Google Vision API.

Creating a new VM

  1. Create a new VM in Horizon using the latest Debian with the "g4.cores1.ram1.disk20" flavor.
  2. In Horizon, browse to the new instance and then to the "Puppet configuration" tab.
  3. Add role::labs::google_api_proxy as a Puppet Class, and add the following to the Hiera Config:
    role::labs::google_api_proxy::instances:
      google-api-proxy.wmflabs.org:
        default: true
        proxied: https://www.googleapis.com
      googlevision-api-proxy.wmflabs.org:
        proxied: https://vision.googleapis.com
    
  4. Force a puppet run on the new instance with sudo -i puppet agent -tv and make sure that everything applied properly.
  5. Detach the floating IP and associate it with the new VM
  6. Update the google-api-proxy.wmflabs.org and googlevision-api-proxy.wmflabs.org web proxies to point to the new instance.
  7. Stop the old instance
  8. Test both proxies
  9. Delete the old instance
  10. Profit!

Tools using the proxy