开发者社区 > 云原生 > Serverless > 正文

我在函数计算中使用sdk访问了一个外部链接,请求不到东西。但是我在本地是通的,这个该怎么调试呢?

我在函数计算中使用sdk访问了一个外部链接,请求不到东西。但是我在本地是通的,这个该怎么调试呢?

就是完全相同的代码,Express应用,本地没问题,到函数计算上之后就会出错,我怀疑是FC部署的节点在内网的原因,有什么方法给挪到国外节点吗?

展开
收起
学习娃 2023-05-22 17:23:59 245 0
6 条回答
写回答
取消 提交回答
  • 如果您在函数计算中使用 SDK 访问外部链接时出现问题,可以尝试以下调试方法:

    1. 检查网络连接:请确保您的函数计算服务已经正确连接到互联网,并且防火墙没有限制您的网络连接。您可以通过 ping 命令或者 traceroute 命令来测试网络连接。

    2. 检查代码逻辑:请检查您的代码逻辑是否正确,例如是否正确设置了请求头、请求参数等信息。您可以在本地调试代码,确认代码逻辑是否正确。

    3. 查看日志信息:请查看函数计算服务的日志信息,确认是否存在错误或者异常信息。您可以通过控制台或者命令行工具来查看函数计算的日志信息。

    如果您怀疑是函数计算部署的节点在内网导致的问题,您可以将函数计算服务部署到位于国外的节点上。阿里云函数计算支持在多个地域部署函数服务,您可以选择位于国外的地域来部署您的函数服务。具体操作步骤如下:

    1. 登录到阿里云函数计算控制台,并创建一个新的函数服务。

    2. 选择位于国外的地域,例如美国、欧洲等地区。

    3. 部署您的代码到新创建的函数服务中,并测试访问外部链接是否正常。

    将函数服务部署到国外节点可能会增加网络延迟和带宽消耗,因此需要根据实际业务需求进行权衡。

    2023-05-23 17:42:14
    赞同 展开评论 打赏
  • 月移花影,暗香浮动

    你可以尝试在函数计算中打印调试信息来帮助定位问题,如下:

    1. 在代码中加入调试日志打印语句,可以使用 console.log() 或者 console.error()。
    2. 尝试使用异常捕获来捕获错误,然后打印日志输出错误信息,例如:try {...} catch (e) {console.log(e)},这样可以看到错误信息。

    当然,更好的调试方式是通过调用阿里云日志服务,将调试信息打印到云端日志中进行查看和定位问题。在函数计算控制台中,您可以通过在函数配置中选择“日志”选项,并启用相应的日志服务进行记录和查看。 通过这种方式,您可以实时查看和分析调用日志,定位和解决问题。

    2023-05-23 09:14:30
    赞同 展开评论 打赏
  • 函数计算底层是运行在阿里云的服务器上的,确实存在使用阿里云服务时无法正常访问一些外部资源的问题。可以尝试以下几种方法:

    1. 检查防火墙和网络配置:确保您的网络配置没有屏蔽您访问目标资源的端口或协议。尝试在函数计算环境中通过 telnet 命令测试目标资源是否可用。

    2. 使用 HTTP 代理:阿里云提供了 HTTP 代理服务,可以将函数计算环境中的请求通过代理转发到外部资源上。您可以在函数代码中使用 http_proxyhttps_proxy 环境变量指定代理地址和端口。

    3. 更换函数计算部署地域:可以尝试将您的函数计算服务部署到国内外其他地域,以避免某些网络访问限制或限速问题。可以通过在函数计算中创建自定义运行环境并选择目标地域来实现这一点。

    另外,如果您仍然无法解决问题,建议您在自己的本地机器中模拟函数计算运行环境,并进行调试。您可以使用支持本地开发的函数计算工具包(如 Fun 工具包)进行本地模拟和调试。这样可以更方便地发现问题并进行排查。

    2023-05-23 08:51:21
    赞同 展开评论 打赏
  • 您可以通过以下方式调试函数计算中的问题:

    1. 使用日志查看器:通过函数计算控制台中的日志查看器,可以查看函数计算中的日志,从而定位问题所在。您可以在代码中添加日志输出语句,将运行时的信息输出到日志中,以便更好地调试问题。

    2. 使用调试工具:如果您使用的是 Node.js 8 或以上版本,可以使用函数计算提供的调试工具,将函数计算的运行环境映射到本地计算机上进行调试。具体使用方法可以参考函数计算官方文档。

    3. 检查网络设置:如果您的代码需要访问外部链接,需要确保函数计算环境可以正常访问网络。可以通过 pingcurl 等工具检查是否可以访问目标链接。如果您怀疑函数计算所在节点在内网,可以尝试使用 Elastic Compute Service(ECS)或者轻量应用服务器(Lighthouse)等云服务器服务,将您的应用部署在公网节点上进行测试。

    4. 检查代码逻辑:如果您的代码在本地可以运行,但在函数计算中出现问题,可能是代码逻辑问题。可以检查代码中是否存在与函数计算环境不兼容的部分,例如文件读写、系统调用等操作。

    至于将函数计算挪到国外节点的问题,建议您使用国际版的函数计算(Function Compute International),该服务可以让您在海外地区快速构建和部署应用,从而更好地满足全球化业务需求。

    2023-05-22 23:51:22
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    您好,如果您在函数计算中使用SDK访问外部链接出现问题,可以尝试以下方法来进行调试:

    1. 检查网络连接是否正常。您可以在函数计算控制台查看函数运行日志,看看是否有网络连接错误的信息。
    2. 确认您的代码是否正确。您可以在本地运行代码,看看是否能够正确访问外部链接。
    3. 确认您的函数计算配置是否正确。您可以检查您的函数计算配置,看看是否有相关的配置错误。

    如果您怀疑是因为函数计算部署节点在内网导致无法访问外部链接,您可以尝试将函数计算部署到位于国外的节点上。目前阿里云函数计算已经支持在海外地域创建函数计算服务。在创建函数计算服务时,您可以选择位于海外地域的服务区域。这样就可以使您的函数计算服务部署在国外节点上,从而访问外部链接时不受内网限制。

    2023-05-22 23:34:20
    赞同 展开评论 打赏
  • 可以部署到香港或海外地域试下,创建应用的时候可以选择

    此答案来自钉钉群“阿里函数计算官网客户"

    2023-05-22 20:09:51
    赞同 展开评论 打赏
滑动查看更多

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    Hologres Serverless之路:揭秘弹性计算组 立即下载
    Serverless开发平台: 让研发效能再提升 立即下载
    Serverless 引领云上研发新范式 立即下载