菜单
文档breadcrumb arrow Grafana Tempobreadcrumb arrow 管理breadcrumb arrow 使用 AWS Lambda 进行搜索
开源

使用 AWS Lambda 进行搜索

注意

Tempo 无服务器功能现已弃用,并将在即将发布的版本中移除。

本文档解释了如何设置 AWS Lambda 以进行无服务器后端搜索。有关后端搜索的配置选项,请阅读提高搜索性能

  1. 构建代码包

    bash
    cd ./cmd/tempo-serverless && make build-lambda-zip

    这将创建一个 ZIP 文件,其中包含函数所需的二进制文件。文件名的格式为:./lambda/tempo-<分支名称>-<提交哈希>.zip。以下是文件名的示例:

    bash
    ls lambda/*.zip
    lambda/tempo-serverless-backend-search-297172a.zip
  2. 预置一个 S3 存储桶。

  3. 将 ZIP 文件复制到您的存储桶中。

    aws s3 cp lambda/tempo-serverless-backend-search-297172a.zip gs://<newly provisioned gcs bucket>
  4. 预置 Lambda。要通过 HTTP 调用 Lambda 函数,我们还需要创建一个 ALB 和其他一些资源。本示例使用 Terraform,仅包含函数定义。此外,您还需要 VPC、安全组、IAM 角色、ALB、目标组等,但这超出了本指南的范围。

    locals {
      // this can be increased if you would like to use multiple functions
      count = 1
    }
    
    resource "aws_lambda_function" "lambda" {
        count = local.count
    
        function_name    = "${local.name}-${count.index}"
        description      = "${local.name}-${count.index}"
        role             = <arn of appropriate role>
        handler          = "main"
        runtime          = "go1.x"
        timeout          = "60"
        s3_key           = "tempo-serverless-backend-search-297172a.zip"
        s3_bucket        = <S3 bucket created above>
        memory_size      = 1769 # 1 vcpu
    
        vpc_config {
            subnet_ids         = <appropriate subnets>
            security_group_ids = [<appropriate security groups>]
        }
    
        environment {
            variables = {
            "TEMPO_S3_BUCKET"               = "<S3 bucket name backing your Tempo instance>"
            "TEMPO_BACKEND"                 = "s3"
            "TEMPO_S3_HEDGE_REQUESTS_AT"    = "400ms"
            "TEMPO_S3_HEDGE_REQUESTS_UP_TO" = "2"
            "TEMPO_S3_ENDPOINT"             = "s3.dualstack.us-east-2.amazonaws.com"
            }
        }
    }
  5. 将新创建的 ALB 的主机名添加到查询器配置中

    querier:
      search:
        external_endpoints:
        - http://<alb dns hostname>