我正在尝试了解如何在 AWS (Elastic Beanstalk) 上安装和使用 GeoIP 库。 据我所知,EB 有一个“临时文件系统”,但我可以将 CeoCity 二进制文件存储在 S3 中……但是 MaxMind C 库呢?有没有人配置过 EB 来使用 MaxMind 的 api?
(我的栈是基于Python/Django的)
最佳答案
我不知道您为什么要费心定制 AMI,而一个简单的 .ebextensions 脚本就可以完成这项工作,而且每次部署都可以下载新的 Maxmind 数据库。请注意,我的示例脚本已硬编码为截至今天的最新 GeoIP 客户端代码,因此您可能希望不时升级它。但我怀疑客户端代码会发生巨大变化,因此它会始终有效。此脚本适用于 PHP API 和免费的 GeoLite2 数据库,很容易更改为 Python 客户端代码。
files:
"/usr/local/bin/geoip2.phar" :
mode: "000644"
owner: root
group: root
source: https://github.com/maxmind/GeoIP2-php/releases/download/v2.1.1/geoip2.phar
"/usr/local/share/GeoIP/GeoLite2-City.mmdb.gz" :
mode: "000644"
owner: root
group: root
source: http://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz
"/usr/local/share/GeoIP/GeoLite2-Country.mmdb.gz" :
mode: "000644"
owner: root
group: root
source: http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.mmdb.gz
commands:
gunzip_maxmind_city:
command: gunzip -f GeoLite2-City.mmdb.gz
cwd: /usr/local/share/GeoIP
gunzip_maxmind_country:
command: gunzip -f GeoLite2-Country.mmdb.gz
cwd: /usr/local/share/GeoIP
关于amazon-web-services - Amazon Elastic Beanstalk 上的 MaxMind GeoIP 库和数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21572268/