Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Personaliza el HTTP cliente - AWS SDK para Go v2

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Personaliza el HTTP cliente

AWS SDK para Go Utiliza un HTTP cliente predeterminado con valores de configuración predeterminados. Si bien puede cambiar algunos de estos valores de configuración, el HTTP cliente y el transporte predeterminados no están suficientemente configurados para los clientes que los utilizan AWS SDK para Go en un entorno con requisitos de alto rendimiento y baja latencia. Para obtener más información, consulte la sección, Preguntas frecuentes ya que las recomendaciones de configuración varían en función de las cargas de trabajo específicas. En esta sección se describe cómo configurar un HTTP cliente personalizado y cómo usarlo para crear AWS SDK para Go llamadas.

Para ayudarle a crear un HTTP cliente personalizado, en esta sección se describe cómo NewBuildableClientconfigurar los ajustes personalizados y cómo utilizar ese cliente con un cliente de AWS SDK para Go servicio.

Definamos lo que queremos personalizar.

Anulación durante la carga de la configuración

Se pueden proporcionar HTTP clientes personalizados al llamar LoadDefaultConfigempaquetando el cliente con W ithHTTPClient y pasándole el valor resultante aLoadDefaultConfig. Por ejemplo, para hacerse customClient pasar por nuestro cliente:

cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithHTTPClient(customClient))

Tiempo de espera

Se BuildableHTTPClient puede configurar con un límite de tiempo de espera de solicitud. Este tiempo de espera incluye el tiempo necesario para conectarse, procesar cualquier redireccionamiento y leer el cuerpo completo de la respuesta. Por ejemplo, para modificar el tiempo de espera del cliente:

import "github.com/aws/aws-sdk-go-v2/aws/transport/http" // ... httpClient := http.NewBuildableClient().WithTimeout(time.Second*5)

Marcador

BuildableHTTPClientProporciona una mecánica de construcción para construir clientes con opciones de Dialer modificadas. El siguiente ejemplo muestra cómo configurar los Dialer ajustes de un cliente.

import awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http" import "net" // ... httpClient := awshttp.NewBuildableClient().WithDialerOptions(func(d *net.Dialer) { d.KeepAlive = -1 d.Timeout = time.Millisecond*500 })

Configuración

Marcador. KeepAlive

Esta configuración representa el período de mantenimiento activo de una conexión de red activa.

Establézcalo en un valor negativo para deshabilitar los keep-alives.

Establézcalo en 0 para habilitar los keep-alives si el protocolo y el sistema operativo lo admiten.

Los protocolos de red o los sistemas operativos que no admiten la función Keep-alives ignoran este campo. De forma predeterminada, TCP habilita Keep Alive.

Consulte https://golang. org/pkg/net/#Dialer. KeepAlive

Definir KeepAlive como Time.Duration.

Marcador. Tiempo de espera

Esta configuración representa la cantidad máxima de tiempo que un dial espera a que se cree una conexión.

El valor predeterminado es 30 segundos.

Consulte https://golang. org/pkg/net/#Dialer .Timeout

Establece Timeout como Time.Duration.

Transporte

BuildableHTTPClientProporciona una mecánica de construcción para construir clientes con opciones de transporte modificadas.

Configuración de un proxy

Si no puedes conectarte directamente a Internet, puedes usar variables de entorno compatibles con GO (HTTP_PROXY/HTTPS_PROXY) o crear un HTTP cliente personalizado para configurar tu proxy. En el siguiente ejemplo, se configura el cliente para que se utilice PROXY_URL como punto final del proxy:

import awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http" import "net/http" // ... httpClient := awshttp.NewBuildableClient().WithTransportOptions(func(tr *http.Transport) { proxyURL, err := url.Parse("PROXY_URL") if err != nil { log.Fatal(err) } tr.Proxy = http.ProxyURL(proxyURL) })

Otros ajustes

A continuación se muestran algunos otros Transport ajustes que se pueden modificar para ajustar el HTTP cliente. Puede encontrar cualquier configuración adicional que no se describa aquí en la documentación sobre el tipo de transporte. Estos ajustes se pueden aplicar como se muestra en el siguiente ejemplo:

import awshttp "github.com/aws/aws-sdk-go-v2/aws/transport/http" import "net/http" // ... httpClient := awshttp.NewBuildableClient().WithTransportOptions(func(tr *http.Transport) { tr.ExpectContinueTimeout = 0 tr.MaxIdleConns = 10 })

Transporte. ExpectContinueTimeout

Si la solicitud tiene el encabezado «Expect: 100-continue», esta configuración representa la cantidad máxima de tiempo de espera para que lleguen los encabezados de primera respuesta de un servidor después de haber escrito completamente los encabezados de la solicitud. Este tiempo no incluye el tiempo de envío del encabezado de la solicitud. El HTTP cliente envía su carga útil una vez agotado el tiempo de espera.

El valor predeterminado es de 1 segundo.

Establézcalo en 0 si no hay tiempo de espera y envía la carga útil de la solicitud sin esperas. Un caso de uso es cuando tiene problemas con los proxies o servicios de terceros que realizan una sesión similar a la que se utiliza Amazon S3 en la función que se muestra más adelante.

Consulte https://golang. org/pkg/net/http/#Transport. ExpectContinueTimeout

Definir ExpectContinue como Time.Duration.

Transporte. IdleConnTimeout

Esta configuración representa la cantidad máxima de tiempo para mantener activa una conexión de red inactiva entre HTTP solicitudes.

Establézcalo en 0 si no hay límite.

Consulte https://golang. org/pkg/net/http/#Transport. IdleConnTimeout

Definir IdleConnTimeout como Time.Duration.

Transporte. MaxIdleConns

Esta configuración representa el número máximo de conexiones inactivas (que se mantienen activas) en todos los hosts. Un caso práctico para aumentar este valor es cuando se ven muchas conexiones de los mismos clientes en un período corto

0 significa que no hay límite.

Consulte https://golang. org/pkg/net/http/#Transport. MaxIdleConns

MaxIdleConnsDefinir como int.

Transporte. MaxIdleConnsPerHost

Esta configuración representa el número máximo de conexiones inactivas (que se mantienen activas) que se deben mantener por host. Un caso práctico para aumentar este valor es cuando se ven muchas conexiones de los mismos clientes en un período corto

El valor predeterminado es de dos conexiones inactivas por host.

Configúrelo en 0 para usar DefaultMaxIdleConnsPerHost (2).

Consulte https://golang. org/pkg/net/http/#Transport. MaxIdleConnsPerHost

MaxIdleConnsPerHostDefinir como int.

Transporte. ResponseHeaderTimeout

Esta configuración representa el tiempo máximo de espera para que un cliente lea el encabezado de respuesta.

Si el cliente no puede leer el encabezado de la respuesta durante este período, la solicitud fallará y se generará un error de tiempo de espera.

Tenga cuidado al establecer este valor cuando utilice funciones Lambda de ejecución prolongada, ya que la operación no devuelve ningún encabezado de respuesta hasta que la función Lambda haya finalizado o se haya agotado el tiempo de espera. Sin embargo, puede seguir utilizando esta opción con la operación ** **. InvokeAsync API

El valor predeterminado es que no hay tiempo de espera; espere para siempre.

Consulte https://golang. org/pkg/net/http/#Transport. ResponseHeaderTimeout

Definir ResponseHeaderTimeout como Time.Duration.

Transporte. TLSHandshakeTimeout

Esta configuración representa el tiempo máximo de espera para que se complete un TLS apretón de manos.

El valor predeterminado es de 10 segundos.

Cero significa que no hay tiempo de espera.

Consulte https://golang. org/pkg/net/http/#Transport. TLSHandshakeTimeout

Definir TLSHandshakeTimeout como Time.Duration.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.