首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >应用程序引擎无法通过云nat静态ip地址重定向流量

应用程序引擎无法通过云nat静态ip地址重定向流量
EN

Stack Overflow用户
提问于 2020-12-24 07:35:37
回答 1查看 383关注 0票数 0

我试图使用客户端的前置SMTP服务器发送电子邮件使用应用程序引擎标准。为此,我们在默认网络和具有静态ip地址的Cloud中创建了Serverless VPC访问连接器,以发送出口流量。客户端已白化静态ip地址和端口。以下是应用程序引擎中的代码片段

代码语言:javascript
运行
复制
    msg.set_content('This is a HTML email')

    msg.add_alternative(cleared_html_content, subtype='html')
    try:
        context = ssl._create_unverified_context()
        print("starting conectn")
        with smtplib.SMTP('xx.xxxx.edu', 2525) as server:
            server.starttls(context=context)
            server.send_message(msg)
        print("sent almost")
    except Exception as e:
        print('Error: ', e)

以下是app.yaml

代码语言:javascript
运行
复制
runtime: python37
entrypoint: gunicorn -t 120 -b :$PORT main:app
vpc_access_connector:
  name: projects/xxxxxxxxx/locations/us-central1/connectors/yyyyyyyyy

当我使用app engine url运行我的应用程序时,我在日志查看器中得到以下错误

代码语言:javascript
运行
复制
Error: (554, b"xxx.xxxxx.edu\nYour access to this mail system has been rejected due to the sending MTA's poor reputation. If you believe that this failure is in error, please contact the intended recipient via alternate means."

此外,我还创建了云功能,代码与应用程序引擎中的代码相同,用于测试,令人惊讶的是,电子邮件被发送到预期的接收方,没有任何问题。当我检查云NAT日志时,它包含了通过云功能触发的所有细节(简而言之,它使用的是静态ip地址),但是没有与应用程序引擎触发器相关的日志。因此,我认为我的应用程序引擎流量不是通过静态ip地址进行的,也不知道如何在app.yaml中提到这一点。

电子邮件功能中也可能存在代码问题,但由于它在云功能中工作,我真的怀疑我的app.yaml,而不是电子邮件python代码。任何帮助都是非常感谢的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-25 10:38:30

我知道你的SMTP IP是公开的。对于无服务器的VPC连接器,有一个需要知道的警告。

使用云函数云运行,如果只有私有IP、公共IP和私有IP通过无服务器的VPC连接器路由,则可以选择

使用app引擎,我没有找到关于出口控制的清晰描述,但我猜想只有私有IP (RFC1918)是通过VPC路由的,而不是公共的。因此,您的云Nat没有被使用,因此您也没有在学校的SMTP服务器上获得授权。

编辑1:

您有三个解决方案来解决这个问题。

  • 您可以创建应用程序引擎在需要发送电子邮件时调用的云函数(或云运行服务)。
  • 您可以从App切换到Cloud (使用新的beta命令gcloud beta run deploy --source=. --region=<REGION> --platform=managed <Service Name>)。就像这样,您可以使用进行部署。使用与App相同的容器引擎生成器(Buildpack)。您必须修改app.yaml文件的内容(如果需要帮助,可以共享它)。但是,到目前为止,IAP还没有兼容云运行。如果你想用它,等等!
  • 在VPC和学校网络之间创建一个VPN。就像这样,您将使用私有IP调用SMTP服务器。在smtp服务器上,只授予无服务器VPC连接器范围来访问它。您不再需要云NAT配置。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65435334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档