middleware

package
v0.0.0-...-692c7c5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 17, 2025 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AWSRequestIDLogKey     = "aws-request-id"
	AWSStatusCodeLogKey    = "aws-status-code"
	AWSServiceNameLogKey   = "aws-service-name"
	AWSOperationNameLogKey = "aws-operation-name"
	AWSErrorCodeLogKey     = "aws-error-code"
)

Variables

View Source
var StructuredErrorHandler = func(stack *middleware.Stack) error {
	return stack.Deserialize.Add(middleware.DeserializeMiddlewareFunc("StructuredErrorHandler", func(ctx context.Context, in middleware.DeserializeInput, next middleware.DeserializeHandler) (middleware.DeserializeOutput, middleware.Metadata, error) {
		out, metadata, err := next.HandleDeserialize(ctx, in)
		if err == nil {
			return out, metadata, nil
		}
		values := []any{AWSServiceNameLogKey, middleware.GetServiceID(ctx), AWSOperationNameLogKey, middleware.GetOperationName(ctx)}
		temp := err
		for temp != nil {
			if v, ok := temp.(*http.ResponseError); ok {
				values = append(values, AWSRequestIDLogKey, v.RequestID, AWSStatusCodeLogKey, v.Response.StatusCode)
			}
			if v, ok := temp.(*smithy.GenericAPIError); ok {
				values = append(values, AWSErrorCodeLogKey, v.Code)
			}
			temp = errors.Unwrap(temp)
		}
		return out, metadata, serrors.Wrap(err, values...)
	}), middleware.Before)
}

StructuredErrorHandler injects structured keys and values into the error returned by the AWS request It doesn't modify the error message so error messages will still contain the structured values

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL