pub struct AwsLambdaPlugin {
function_uri: Template,
authorization: Authorization,
ssl_verify: bool,
timeout: Duration,
client: Arc<OutboundClient>,
}Expand description
Invokes an AWS Lambda function and maps its reply into Context.response.
Fields§
§function_uri: TemplateFull Lambda function URL / API endpoint. Supports
{{namespace.path}} template references, rendered per request.
ssl_verify: bool§timeout: Duration§client: Arc<OutboundClient>Implementations§
Source§impl AwsLambdaPlugin
impl AwsLambdaPlugin
Sourcepub fn from_config(
config: &HashMap<String, Value>,
resources: &Arc<PluginResources>,
) -> Result<Self, String>
pub fn from_config( config: &HashMap<String, Value>, resources: &Arc<PluginResources>, ) -> Result<Self, String>
Builds the plugin from node config.
Accepted keys:
-
function_uri(string, required): the Lambda function URL or API endpoint to invoke. A missing/empty value is a config-load error. -
authorization(object, optional): eitherapikey(string) — sent as thex-api-keyheader (no signing), oriam(object) — SigV4 credentials:accesskey(string, required)secretkey(string, required)aws_region(string, defaultus-east-1)aws_service(string, defaultlambda)session_token(string, optional) — addsx-amz-security-token.
An
iamblock missingaccesskey/secretkeyis a config error. -
ssl_verify(bool, defaultfalse): verify TLS certificates. -
timeout(integer ms, default3000): whole-call deadline.
type: aws-lambda
config:
function_uri: https://xyz.lambda-url.us-east-1.on.aws/
authorization:
iam:
accesskey: AKIDEXAMPLE
secretkey: ${AWS_SECRET_KEY}
aws_region: us-east-1
aws_service: lambda
ssl_verify: false
timeout: 3000Sourcefn build_request(
&self,
ctx: &Context,
amz_time: u64,
) -> Result<OutboundRequest, String>
fn build_request( &self, ctx: &Context, amz_time: u64, ) -> Result<OutboundRequest, String>
Assembles the outbound headers, canonical query string, and target URL
for the request, applying the configured authorization (API key header
or SigV4 signing). amz_time is the signing timestamp (seconds since
epoch), threaded in so tests are deterministic.
Trait Implementations§
Source§impl Plugin for AwsLambdaPlugin
impl Plugin for AwsLambdaPlugin
Source§fn plugin_type(&self) -> &str
fn plugin_type(&self) -> &str
Source§fn execute<'life0, 'async_trait>(
&'life0 self,
ctx: Context,
) -> Pin<Box<dyn Future<Output = Result<PluginOutput, PluginExecutionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 self,
ctx: Context,
) -> Pin<Box<dyn Future<Output = Result<PluginOutput, PluginExecutionError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn reads_response_body(&self) -> bool
fn reads_response_body(&self) -> bool
context.response.body. Read moreSource§fn cache_target(&self) -> Option<CacheTarget>
fn cache_target(&self) -> Option<CacheTarget>
proxy-cache half. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for AwsLambdaPlugin
impl !UnwindSafe for AwsLambdaPlugin
impl Freeze for AwsLambdaPlugin
impl Send for AwsLambdaPlugin
impl Sync for AwsLambdaPlugin
impl Unpin for AwsLambdaPlugin
impl UnsafeUnpin for AwsLambdaPlugin
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more