pub struct FunctionBuilder<T>where
T: FunctionBuilderState,{ /* private fields */ }Expand description
Builder for creating AWS Lambda functions.
This builder provides a fluent API for configuring Lambda functions with their associated IAM roles, environment variables, permissions, and event sources.
§Example
use rusty_cdk_core::stack::StackBuilder;
use rusty_cdk_core::lambda::{FunctionBuilder, Architecture, Runtime, Zip};
use rusty_cdk_core::wrappers::*;
use rusty_cdk_macros::{memory, timeout, env_var_key, zip_file};
let mut stack_builder = StackBuilder::new();
let zip = unimplemented!("create a zip");
let (function, role, log_group) = FunctionBuilder::new(
"my-function",
Architecture::ARM64,
memory!(512),
timeout!(30)
)
.zip(zip)
.handler("index.handler")
.runtime(Runtime::NodeJs22)
.env_var_string(env_var_key!("TABLE_NAME"), "my-table")
.build(&mut stack_builder);Implementations§
Source§impl<T> FunctionBuilder<T>where
T: FunctionBuilderState,
impl<T> FunctionBuilder<T>where
T: FunctionBuilderState,
pub fn function_name( self, name: StringWithOnlyAlphaNumericsUnderscoresAndHyphens, ) -> FunctionBuilder<T>
pub fn permissions(self, permission: Permission<'_>) -> FunctionBuilder<T>
Sourcepub fn check_permissions_against_dependencies(
self,
cargo_toml: TomlFile,
) -> FunctionBuilder<T>
pub fn check_permissions_against_dependencies( self, cargo_toml: TomlFile, ) -> FunctionBuilder<T>
Checks that the function has permissions for AWS services listed in Cargo.toml dependencies.
Parses the Cargo.toml to find AWS SDK dependencies and verifies that IAM permissions have been granted for those services.
pub fn env_var(self, key: EnvVarKey, value: Value) -> FunctionBuilder<T>
pub fn env_var_string<V>(self, key: EnvVarKey, value: V) -> FunctionBuilder<T>
pub fn reserved_concurrent_executions( self, executions: u32, ) -> FunctionBuilder<T>
Source§impl FunctionBuilder<StartState>
impl FunctionBuilder<StartState>
Sourcepub fn new(
id: &str,
architecture: Architecture,
memory: Memory,
timeout: Timeout,
) -> FunctionBuilder<StartState>
pub fn new( id: &str, architecture: Architecture, memory: Memory, timeout: Timeout, ) -> FunctionBuilder<StartState>
Creates a new Lambda function builder.
§Arguments
id- Unique identifier for the functionarchitecture- CPU architecture (x86_64 or ARM64)memory- Memory allocation in MBtimeout- Maximum execution time
pub fn zip(self, zip: Zip) -> FunctionBuilder<ZipState>
Source§impl FunctionBuilder<ZipState>
impl FunctionBuilder<ZipState>
pub fn handler<T>(self, handler: T) -> FunctionBuilder<ZipStateWithHandler>
Source§impl FunctionBuilder<ZipStateWithHandler>
impl FunctionBuilder<ZipStateWithHandler>
pub fn runtime( self, runtime: Runtime, ) -> FunctionBuilder<ZipStateWithHandlerAndRuntime>
Source§impl FunctionBuilder<ZipStateWithHandlerAndRuntime>
impl FunctionBuilder<ZipStateWithHandlerAndRuntime>
Sourcepub fn sqs_event_source_mapping(
self,
sqs_queue: &QueueRef,
max_concurrency: Option<SqsEventSourceMaxConcurrency>,
) -> FunctionBuilder<EventSourceMappingState>
pub fn sqs_event_source_mapping( self, sqs_queue: &QueueRef, max_concurrency: Option<SqsEventSourceMaxConcurrency>, ) -> FunctionBuilder<EventSourceMappingState>
Configures the function to be triggered by an SQS queue.
Automatically adds the necessary IAM permissions for reading from the queue.
Sourcepub fn build(
self,
stack_builder: &mut StackBuilder,
) -> (FunctionRef, RoleRef, LogGroupRef)
pub fn build( self, stack_builder: &mut StackBuilder, ) -> (FunctionRef, RoleRef, LogGroupRef)
Builds the Lambda function and adds it to the stack.
Creates the function along with its IAM execution role and CloudWatch log group. Returns references to all three resources.
Source§impl FunctionBuilder<EventSourceMappingState>
impl FunctionBuilder<EventSourceMappingState>
Sourcepub fn build(
self,
stack_builder: &mut StackBuilder,
) -> (FunctionRef, RoleRef, LogGroupRef)
pub fn build( self, stack_builder: &mut StackBuilder, ) -> (FunctionRef, RoleRef, LogGroupRef)
Builds the Lambda function and adds it to the stack.
Creates the function along with its IAM execution role, CloudWatch log group, and event source mapping. Returns references to the function, role, and log group.
Auto Trait Implementations§
impl<T> Freeze for FunctionBuilder<T>
impl<T> RefUnwindSafe for FunctionBuilder<T>where
T: RefUnwindSafe,
impl<T> Send for FunctionBuilder<T>where
T: Send,
impl<T> Sync for FunctionBuilder<T>where
T: Sync,
impl<T> Unpin for FunctionBuilder<T>where
T: Unpin,
impl<T> UnwindSafe for FunctionBuilder<T>where
T: UnwindSafe,
Blanket Implementations§
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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