### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

When creating an API Gateway with an integration of type AWS to S3, the uri to get objects from an S3 bucket is not working, returning:

`{
    "status": 400,
    "body": "{\"Type\": \"User\", \"message\": \"Error invoking integration for API Gateway ID '3en931aay2': API Gateway AWS integration action URI \\\"arn:aws:apigateway:us-east-1:s3:action/GetObject&Bucket=saxpress-drawio=Key={item}\\\", method \\\"GET\\\" not yet implemented\", \"__type\": \"InvalidRequest\"}",
    "headers": {
        "x-amzn-errortype": "InvalidRequest",
        "Content-Type": "text/html; charset=utf-8",
        "Content-Length": "280"
    }
}`

### Expected Behavior

Retrieve S3 object.

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

```
localstack:
    image: localstack/localstack:latest
    hostname: localstack
    environment:
      - AWS_DEFAULT_REGION=us-east-1
      - EDGE_PORT=4566
      - HOSTNAME_EXTERNAL=localstack
      - SERICES=s3,lambda,apigateway,apigatewayv2
      - DEBUG=1
    ports:
      - '4566-4583:4566-4583'
      - '8055:8080'
    volumes:
      - 'saxpress-localstack-data:/tmp/localstack'
      - '/var/run/docker.sock:/var/run/docker.sock'
      - './.localstack:/docker-entrypoint-initaws.d'
```

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

```
awslocal apigateway create-rest-api --region us-east-1 --name ${API_NAME} --endpoint-url=http://localhost:4566

awslocal apigateway create-resource \
  --region ${REGION} \
  --rest-api-id ${API_ID} \
  --parent-id ${PARENT_RESOURCE_ID} \
  --path-part "{proxy+}"

awslocal apigateway put-method \
  --region ${REGION} \
  --resource-id ${RESOURCE_ID} \
  --rest-api-id ${API_ID} \
  --http-method "GET" \
  --authorization-type "NONE" \
  --request-parameters "method.request.path.proxy=true"

awslocal apigateway put-integration \
  --region ${REGION} \
  --resource-id ${RESOURCE_ID} \
  --rest-api-id ${API_ID} \
  --type "AWS" \
  --http-method "GET" \
  --uri "arn:aws:apigateway:${REGION}:s3:action/GetObject&Bucket=${BUCKET_NAME}=Key={item}" \
  --credentials "${ROLE_ARN}" \
  --integration-http-method "GET" \
  --request-parameters "integration.request.path.item=method.request.queryString.proxy,integration.request.path.object=context.requestId"

awslocal apigateway put-method-response \
  --region ${REGION} \
  --resource-id ${RESOURCE_ID} \
  --rest-api-id ${API_ID} \
  --status-code "200" \
  --http-method "GET" \
  --response-parameters "method.response.header.Content-Type=true" \
  --response-models "application/json=Empty"

awslocal apigateway put-integration-response \
  --region ${REGION} \
  --resource-id ${RESOURCE_ID} \
  --rest-api-id ${API_ID} \
  --status-code "200" \
  --http-method "GET" \
  --response-parameters "method.response.header.Content-Type=integration.response.header.Content-Type"
```

Testing the method:
```
root@localstack:/opt/code/localstack# awslocal apigateway test-invoke-method --rest-api-id ${API_ID} --resource-id ${RESOURCE_ID} --http-method GET --path-with-query-string index.html
{
    "status": 400,
    "body": "{\"Type\": \"User\", \"message\": \"Error invoking integration for API Gateway ID '3en931aay2': API Gateway AWS integration action URI \\\"arn:aws:apigateway:us-east-1:s3:action/GetObject&Bucket=saxpress-drawio=Key={item}\\\", method \\\"GET\\\" not yet implemented\", \"__type\": \"InvalidRequest\"}",
    "headers": {
        "x-amzn-errortype": "InvalidRequest",
        "Content-Type": "text/html; charset=utf-8",
        "Content-Length": "280"
    }
}
```

### Environment

```markdown
- OS: macOS Big Sur
- LocalStack: latest
```


### Anything else?

_No response_
request_context = {
        "resourcePath": resource_path or relative_path,
        "apiId": api_id,
        "domainPrefix": api_id,
        "domainName": domain_name,
        "accountId": account_id,
        "resourceId": resource_id,
        "requestId": long_uid(),
        "identity": {
            "accountId": account_id,
            "sourceIp": source_ip,
            "userAgent": headers.get("User-Agent"),
        },
        "httpMethod": method,
        "protocol": "HTTP/1.1",
        "requestTime": pytz.utc.localize(datetime.datetime.utcnow()).strftime(
            REQUEST_TIME_DATE_FORMAT
        ),
        "requestTimeEpoch": int(time.time() * 1000),
    }
    
    auth_context = invocation_context.auth_context
    if auth_context:
        request_context["authorizer"] = auth_context
    request_context["identity"].update(invocation_context.auth_identity or {})
    if not is_test_invoke_method(method, path):
        request_context["path"] = (f"/{stage}" if stage else "") + relative_path
        request_context["stage"] = stage
    return request_context
def apply_request_response_templates(