Nova Resource:Google-api-proxy/Documentation
Google-api-proxy provides a static IP for communication with the Google Custom Search API.
Usage
- Get the Wikimedia Google API key from Community Tech
- Use
https://google-api-proxy.wmflabs.org/
instead ofhttps://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
- Create a new VM in Horizon using the latest Debian with the "g4.cores1.ram1.disk20" flavor.
- In Horizon, browse to the new instance and then to the "Puppet configuration" tab.
- 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
- Force a puppet run on the new instance with
sudo -i puppet agent -tv
and make sure that everything applied properly. - Detach the floating IP and associate it with the new VM
- Update the google-api-proxy.wmflabs.org and googlevision-api-proxy.wmflabs.org web proxies to point to the new instance.
- Stop the old instance
- Test both proxies
- Delete the old instance
- Profit!
Tools using the proxy
- Wikimedia OCR (when using the Google engine)
- Earwig's copyvio detector (who's API is used by CopyPatrol)
- Kotz' bot "BotHasava"