微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Sendgrid 的 Cloud Composer;电子邮件 API 请求产生 401 禁止错误

如何解决使用 Sendgrid 的 Cloud Composer;电子邮件 API 请求产生 401 禁止错误

电子邮件运营商总是返回 401 forbidden。

版本:

composer-1-14-2-airflow-1-10-12

环境变量是提前创建的:

SENDGRID_MAIL_FROM=x@x.com

SENDGRID_API_KEY="SG.****"

总结:作为开始,我使用最宽松的环境。创建 Composer 的网络允许所有入口和出口。

使用 Cloud Shell

curl --request POST \
  --url https://api.sendgrid.com/v3/mail/send \
  --header "Authorization: Bearer SG.****" \
  --header 'Content-Type: application/json' \
  --data '{"personalizations": [{"to": [{"email": "x@x.com"}]}],"from": {"email": "y@x.com"},"subject": "Hello,World!","content": [{"type": "text/plain","value": "hey!"}]}'

执行上述 curl 命令后,邮件已正确发送。

但是,来自 Composer 环境的电子邮件操作员返回 401 错误

在 Bash Operator 中使用 curl 命令会产生完全相同的 401 错误,只是确认了电子邮件 Operator 的连接问题。

此外,当我通过 SSH 连接到运行 Composer 的 Kubernetes 集群的其中一个工作人员时,我可以毫无问题地发送电子邮件

将 NetworkPolicy 添加到 Kubernetes 集群以允许来自集群的所有出口也没有区别。

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
Metadata:
  name: allow-all-egress
spec:
  podSelector: {}
  egress:
  - {}
  policyTypes:
  - Egress

那么可能是什么问题?

毕竟,这应该很简单,因为它是 GCP 推荐的用于从 Composer 发送电子邮件的服务,并且可能应该更彻底地记录下来。

非常感谢您的所有建议/帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。