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.

Establezca el protocolo HTTP 1.1 para iniciar la API local de SAM.

Estoy desarrollando una función de lambda y utilizando AWS SAM para crear mi pila. He notado que cuando pruebo localmente usando “sam local start-api”, la API responde con HTTP 1.0 para solicitudes HTTP 1.1. Aquí hay una muestra de salida de curl:

Como puede ver en la salida anterior, se envía una solicitud HTTP 1.1 a la API pero la API responde con HTTP 1.0. Esto sucede para todas las solicitudes.

Supongo que cuando lo publique en AWS, la API también usará HTTP 1.0. ¿Alguien sabe si puedo configurar qué versión del protocolo HTTP se utiliza para la puerta de enlace de la API para la función de lambda? Además, ¿cómo configuro una versión mínima de TLS de 1.2?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para configurar la versión del protocolo HTTP utilizado para API Gateway proxy a la función Lambda, puede agregar la siguiente propiedad a su plantilla SAM para el mapeo de eventos fuente de la función Lambda:

    Events:
        MyApi:
            Type: Api
            Properties:
                Path: /my-endpoint
                Method: any
                RestApiId:
                    Ref: MyApiGateway
                Integration:
                    Type: AWS_PROXY
                    IntegrationHttpMethod: POST
                    Uri:
                        Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations
                    PassthroughBehavior: WHEN_NO_TEMPLATES
                    RequestParameters:
                        integration.request.header.Content-Type: "'application/x-www-form-urlencoded'"
                    ConnectionType: INTERNET
                    # Set specific protocol version here
                    HttpApi:
                        ProtocolType: HTTP1
    

    En este ejemplo, hemos agregado la propiedad HttpApi: ProtocolType para establecer la versión del protocolo en HTTP 1. Esto debe garantizar que su proxy de API Gateway use HTTP 1.1 al recibir solicitudes de los clientes.

    En cuanto a establecer una versión mínima de TLS de 1.2, puede configurar esto en API Gateway mismo creando un nombre de dominio personalizado y asociándolo con su API. Cuando lo haga, puede especificar la versión mínima de TLS requerida para las solicitudes entrantes a su API. Así es como puede hacerlo usando AWS CLI:

    aws apigateway create-domain-name \
       --domain-name mydomain.com \
       --certificate-name myapp \
       --security-policy TLS_1_2 \
    

    En este ejemplo, hemos establecido la política de seguridad en TLS_1_2 para requerir un mínimo de TLS 1.2 para las solicitudes entrantes. También puede establecer esta propiedad en su plantilla SAM en la sección Properties de su recurso AWS::ApiGateway::DomainName.

Comments are closed.