pub struct DockerBackend { /* private fields */ }Expand description
Docker/Podman-based Lambda execution backend.
Implementations§
Source§impl DockerBackend
impl DockerBackend
Sourcepub fn auto_detect(server_port: u16) -> Option<Self>
pub fn auto_detect(server_port: u16) -> Option<Self>
Auto-detect Docker or Podman. Returns None if neither is available.
Override with FAKECLOUD_CONTAINER_CLI env var.
server_port is the port the main fakecloud server bound to; used
to resolve PackageType=Image ECR URIs against fakecloud ECR.
Trait Implementations§
Source§impl LambdaBackend for DockerBackend
impl LambdaBackend for DockerBackend
Source§fn name(&self) -> &str
fn name(&self) -> &str
Short identifier surfaced via logs and introspection (e.g.
"docker", "podman", "kubernetes").Source§fn launch<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
func: &'life1 LambdaFunction,
code_zip: Option<&'life2 [u8]>,
layers: &'life3 [Vec<u8>],
_deploy_id: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<WarmInstance, RuntimeError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn launch<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
func: &'life1 LambdaFunction,
code_zip: Option<&'life2 [u8]>,
layers: &'life3 [Vec<u8>],
_deploy_id: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<WarmInstance, RuntimeError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Launch a fresh runtime instance for
func using the supplied
code (for zip-package functions) or func.image_uri (for image
package functions). layers are the attached layer ZIPs in
attach order. deploy_id is the facade-computed fingerprint
used to label resources so reaper logic can correlate.Source§fn terminate<'life0, 'life1, 'async_trait>(
&'life0 self,
handle: &'life1 BackendHandle,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn terminate<'life0, 'life1, 'async_trait>(
&'life0 self,
handle: &'life1 BackendHandle,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Tear down one instance. Must be idempotent — the facade may call
this against an already-gone instance during cleanup races.
Source§fn prepull_image<'life0, 'life1, 'async_trait>(
&'life0 self,
image: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), RuntimeError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn prepull_image<'life0, 'life1, 'async_trait>(
&'life0 self,
image: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), RuntimeError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Optional hook: pre-warm the runtime image so the first
launch()
for a function doesn’t pay the cold-pull cost. Called in the
background after CreateFunction persists; backends that don’t
benefit from pre-pulling (e.g. Kubernetes, which pulls images on
the scheduling node anyway) leave this as a no-op. Read moreSource§fn reap_stale<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn reap_stale<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Sweep instances that belong to a previous fakecloud process so
their function names don’t leak across restarts. Default no-op;
backends with out-of-process state should override.
Auto Trait Implementations§
impl Freeze for DockerBackend
impl RefUnwindSafe for DockerBackend
impl Send for DockerBackend
impl Sync for DockerBackend
impl Unpin for DockerBackend
impl UnsafeUnpin for DockerBackend
impl UnwindSafe for DockerBackend
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
Mutably borrows from an owned value. Read more
impl<T> ErasedDestructor for Twhere
T: 'static,
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>
Converts
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>
Converts
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