如何解决使用 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 举报,一经查实,本站将立刻删除。