1 个不稳定版本
0.0.0 | 2023年4月11日 |
---|
#12 in #leverage
2KB
mail-service
利用Gmail API以编程方式发送邮件的微服务。
这需要在GCP中设置一个服务帐户并启用域范围委派。有关详细信息,请参阅此处。
开发
-
将GCP服务帐户的凭据文件(
sa_creds.json
)复制到项目的根目录。您可以在LastPass中找到它。 -
确保在
docker-compose.yaml
中正确设置环境变量。 -
启动开发服务器
这将构建Docker镜像并自动运行它,使用docker-compose.yaml中定义的配置。这可以节省您构建Docker镜像并运行带有所有标志的手动docker run命令(对于环境变量、端口等)。
docker compose up
部署到生产环境
需要在NGINX反向代理后面进行安全。
Flask是WSGI 应用。使用WSGI 服务器运行应用,将传入的HTTP请求转换为标准的WSGI环境,并将传出的WSGI响应转换为HTTP响应。
WSGI服务器具有内置的HTTP服务器。但是,专门的HTTP服务器可能更安全、更高效或更强大。在WSGI服务器前面放置HTTP服务器称为“反向代理”。
-
将GCP服务帐户的凭据文件(
sa_creds.json
)复制到项目的根目录。您可以在LastPass中找到它。是的,这个文件会被烧录到容器中。这是一个临时解决方案,直到我们找到更好的方法,但Google的认证和认证客户端库很复杂且令人烦恼。 -
构建并运行生产镜像。
# Build Docker image for production:
docker build -t mail-service-api .
# Example manually running a container with environment variables and ports defined:
docker run -p 8080:80 -e SA_CREDS_LOCATION=sa_creds.json mail-service-api
API合约
健康检查
GET /
发送邮件
POST /v1/send
请求头
头 | 值 |
---|---|
Content-Type | application/json |
X-API-KEY | abc123 |
请求正文
{
"recipient": string, // recipient's email address
"subject": string, // email subject
"base64_content": string // email body (base64 encoded)
}