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

想请教一下各位,如何在函数计算日志里面查看当前请求访问的域名是什么呢?

想请教一下各位,如何在函数计算日志里面查看当前请求访问的域名是什么呢?

提问17.png

我在任何时候都看不到日志是访问哪个域名产生的

展开
收起
码字王 2023-05-17 10:04:10 131 0
5 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在阿里云函数计算的日志中,可以通过查看环境变量和本地变量来获取当前请求访问的域名。

    当您运行一个函数时,会向函数计算传递一些环境变量和本地变量。其中,环境变量主要包括函数计算的配置信息,本地变量主要包括当前请求的相关信息。其中,函数计算默认会将当前请求的相关信息保存到 context 对象中。

    您可以在代码中通过获取 context 中的相关信息来获取当前请求的相关信息,包括当前请求访问的域名。具体的代码可以参考以下示例:

    import (
        "github.com/aliyun/fc-go-sdk"
        "fmt"
    )
    
    func HandleRequest(ctx context.Context, event []byte) ([]byte, error) {
        request := ctx.(fc.Request)
        headers := request.Headers
        domain := headers["host"]
        fmt.Sprintf("Current request domain is: %s", domain)
        // ...
    }
    

    在上面的示例代码中,我们通过获取当前请求的 headers,然后获取当前请求的 host 值,就可以获取当前请求访问的域名。

    2023-05-23 14:35:25
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    您可以在函数计算的日志中查看当前请求访问的域名。在函数计算中,HTTP请求的域名信息存储在HTTP请求头中的"Host"字段中。因此,您可以在函数计算的日志中搜索该字段以查看当前请求访问的域名。以下是一些示例命令,演示如何在函数计算的日志中查找"Host"字段:

    在Linux或Mac上,您可以使用以下命令:

    fun logs -t | grep Host 该命令将显示函数计算的日志,并使用grep命令过滤出包含"Host"字段的行。

    在Windows上,您可以使用以下命令:

    fun logs -t | Select-String "Host" 该命令将显示函数计算的日志,并使用Select-String命令过滤出包含"Host"字段的行。

    请注意,如果您使用的是函数计算的触发器,例如API网关或HTTP触发器,则您需要在触发器配置中设置域名信息,以便正确记录在HTTP请求头中的"Host"字段中。

    2023-05-20 18:19:37
    赞同 展开评论 打赏
  • 可以自己打印日志

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

    2023-05-17 16:44:50
    赞同 展开评论 打赏
  • 如果您使用阿里云函数计算,您可以通过在代码中打印出 HTTP 请求头中的 Host 字段,来获取当前请求访问的域名。具体来说,在您的函数处理程序中,您可以通过 request 对象获取到 HTTP 请求的所有信息。针对请求头中的 Host 字段,您可以通过 request 对象中的 Headers 字段进行获取,例如:

    func handler(ctx context.Context, request *fc.Request) (*fc.Response, error) {
        host := request.Headers["Host"]
        fmt.Println("请求访问的域名是: ", host)
        //其他逻辑处理
    }
    

    在上述示例代码中,我们通过访问 request 对象中的 Headers 字段,从而获取到 HTTP 请求头中的 Host 字段,并将其打印出来。这样,您就可以在函数计算日志中查看当前请求访问的域名了。

    需要注意的是,如果您不是使用的阿里云函数计算,而是使用其他的云服务提供商或者自建环境,其获取 HTTP 请求头的方式可能会略有不同,可以参考对应的官方文档进行调整。

    2023-05-17 15:00:12
    赞同 展开评论 打赏
  • CSDN全栈领域优质创作者,万粉博主;InfoQ签约博主;华为云享专家;华为Iot专家;亚马逊人工智能自动驾驶(大众组)吉尼斯世界纪录获得者

    在函数计算中,可以通过以下步骤查看当前请求访问的域名:

    1. 在函数计算控制台的左侧导航栏中选择“日志管理”。
    2. 在日志管理页面中,选择要查看的日志文件。
    3. 在日志文件列表中找到目标请求的日志条目,并单击该条目以打开详细信息页面。
    4. 在详细信息页面中,可以看到该请求的相关信息,包括请求的 URL、客户端 IP 地址和客户端操作系统等信息。其中,URL 字段即为当前请求访问的域名。

    另外,如果需要在函数代码中获取当前请求访问的域名,可以使用 Node.js 的标准库 http 或第三方库 request,例如:

    
    const http = require('http');
    const request = require('request');
    
    const server = http.createServer((req, res) => {
      const url = req.url; // 获取当前请求的 URL
      const domain = url.split('/')[2]; // 从 URL 中提取出域名部分
      console.log(`Current domain: ${domain}`); // 输出当前请求访问的域名
    });
    
    server.listen(8080); // 启动服务器
    server.on('listening', () => {
      console.log('Server started at http://localhost:8080/');
    });
    
    
    

    在这个例子中,我们创建了一个简单的 HTTP 服务器,监听端口为 8080。当有请求发送到服务器时,我们使用 req.url 属性获取当前请求的 URL,然后从中提取出域名部分。最后,我们将当前请求访问的域名输出到控制台。

    2023-05-17 10:12:11
    赞同 展开评论 打赏

快速交付实现商业价值。

相关产品

  • 函数计算
  • 相关电子书

    更多
    PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
    Kubernetes下日志实时采集、存储与计算实践 立即下载
    日志数据采集与分析对接 立即下载