首页 > 解决方案 > 在容器内运行的应用程序中使用 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"

所以我在这里有两个问题:

  1. 为什么 GKE 中的容器无法联系 www.googleapis.com
  2. 在容器内处理 gmail api 的最佳方法是什么?我是否缺少设置 Google API 的步骤?

谢谢,比尔

标签: gocontainersgmail-apigoogle-kubernetes-engine

解决方案


似乎是退出的 dns pod 之一导致 dns 查找挂起并导致 tcp i/o 超时:

kube-dns-5dcfcbf5fb-w2vjc 0/4 ExitCode:0 23 3d

修复 pod 后,现在应用程序能够通过 gmail API 发送电子邮件。


推荐阅读