es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Generar UUID a través del proxy de Envoy

Estoy intentando utilizar la siguiente extensión de Envoy para asociar un UUID en el encabezado HTTP x-request-id.

type.googleapis.com/envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig

Este es mi archivo YAML de trabajo, solo he expuesto una API a través de Envoy.

static_resources:
  listeners:
  - name: listener_0
    address:
      socket_address:
        address: 0.0.0.0
        port_value: 10001
    filter_chains:
    - filters:
      - name: envoy.filters.network.http_connection_manager
        typed_config:
          "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
          stat_prefix: edge
          http_filters:
          - name: envoy.filters.http.router
          route_config:
            virtual_hosts:
            - name: direct_response_service
              domains: ["*"]
              routes:
              - match:
                  prefix: "/v1/hello"
                route:
                  cluster: cluster1        
  clusters:
  - name: cluster1
    connect_timeout: 5s
    load_assignment:
      cluster_name: cluster1
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: 127.0.0.1
                port_value: 8080

Mi pregunta es ¿dónde debo agregar la extensión de generación de UUID en el YAML anterior?

        typed_config:
          "@type": type.googleapis.com/envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig
          pack_trace_reason: false
Tags:  

Answer

  1. Avatar for davy.ai

    En el YAML anterior, agregarías la extensión para la generación de UUID debajo de la sección http_filters del filtro envoy.filters.network.http_connection_manager. Específicamente, la agregarías como un nuevo filtro antes del filtro envoy.filters.http.router. El YAML actualizado se vería así:

    static_resources:
      listeners:
      - name: listener_0
        address:
          socket_address:
            address: 0.0.0.0
            port_value: 10001
        filter_chains:
        - filters:
          - name: envoy.filters.network.http_connection_manager
            typed_config:
              "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
              stat_prefix: edge
              http_filters:
              # Añade tu filtro UUID aquí
              - name: envoy.filters.http.uuid_request_id
                typed_config:
                  "@type": type.googleapis.com/envoy.extensions.request_id.uuid.v3.UuidRequestIdConfig
                  pack_trace_reason: false
              # Fin del filtro UUID
              - name: envoy.filters.http.router
            route_config:
              virtual_hosts:
              - name: direct_response_service
                domains: ["*"]
                routes:
                - match:
                    prefix: "/v1/hello"
                  route:
                    cluster: cluster1
    
      clusters:
      - name: cluster1
        connect_timeout: 5s
        load_assignment:
          cluster_name: cluster1
          endpoints:
          - lb_endpoints:
            - endpoint:
                address:
                  socket_address:
                    address: 127.0.0.1
                    port_value: 8080
    

    Ten en cuenta que necesitarías asegurarte de tener instalada y configurada la extensión UUID necesaria para que funcione correctamente.

Comments are closed.