go - 在容器内运行的应用程序中使用 Gmail API
问题描述
我想知道如何从(GKE)容器内运行的应用程序使用 Gmail API?
对于我的本地开发,我可以运行示例https://developers.google.com/gmail/api/quickstart/go以获取代码,然后程序保存令牌,成功发送电子邮件(我已更改范围,该示例只有只读)
但是我没有在 K8S 中运行的容器的交互式终端,所以我将凭据和令牌设置为容器内运行的进程的 env var(我的程序使用了 env var,并且本地测试成功发送了电子邮件),它似乎无法联系 Gmail API。
确切的错误是:
Post https://www.googleapis.com/gmail/v1/users/me/messages/send?alt=json&prettyPrint=false: dial tcp: i/o timeout"
所以我在这里有两个问题:
- 为什么 GKE 中的容器无法联系 www.googleapis.com
- 在容器内处理 gmail api 的最佳方法是什么?我是否缺少设置 Google API 的步骤?
谢谢,比尔
解决方案
似乎是退出的 dns pod 之一导致 dns 查找挂起并导致 tcp i/o 超时:
kube-dns-5dcfcbf5fb-w2vjc 0/4 ExitCode:0 23 3d
修复 pod 后,现在应用程序能够通过 gmail API 发送电子邮件。
推荐阅读
- sql - 我想要 Oracle Apps R12 中的银行账户状态
- python - 你好,为什么这个“一定面积的瓷砖价格”功能不起作用?
- typescript - 在循环中修改集合
- oracle - 我们可以在plsql中使用函数调用的变量中使用默认值吗?
- firebase - 如何在firestore数据库的多个子集中查找文档的所有实例?
- java - 使用 Java Stream API 使用声明式方法重写命令式 For 循环
- javascript - 使用 Sequilize 填充 UUID 数组
- spring - 如何在弹簧执行器健康中排除redis检查
- python - Django Rest Framework:@Action Route 与 Viewset 具有相同的 url_path
- macos - wxBitmap 不在 Mac 上的 wxButton 中居中