Skip to content

Commit fd77636

Browse files
committed
Add a deployment-specific option to list_lambdas()
1 parent 83edf58 commit fd77636

File tree

1 file changed

+26
-6
lines changed

1 file changed

+26
-6
lines changed

src/azul/lambdas.py

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,20 +101,40 @@ def _lambda(self):
101101
return aws.lambda_
102102

103103
def list_lambdas(self) -> list[Lambda]:
104+
"""
105+
Return a list of all the AWS Lambda functions in the AWS account. Only
106+
the latest version of each AWS Lambda function will be included in the
107+
list.
108+
"""
104109
return [
105110
Lambda.from_response(function)
106111
for response in self._lambda.get_paginator('list_functions').paginate()
107112
for function in response['Functions']
108113
]
109114

110-
def manage_lambdas(self, enabled: bool):
115+
def list_deployment_lambdas(self) -> list[Lambda]:
116+
"""
117+
Return a list of all AWS Lambda functions in the current deployment. All
118+
versions (including '$LATEST') of each AWS Lambda function will be
119+
included in the list.
120+
"""
111121
paginator = self._lambda.get_paginator('list_functions')
112-
lambda_prefixes = [config.qualified_resource_name(lambda_infix) for lambda_infix in config.lambda_names()]
122+
lambda_prefixes = [
123+
config.qualified_resource_name(lambda_infix)
124+
for lambda_infix in config.lambda_names()
125+
]
113126
assert all(lambda_prefixes)
114-
for lambda_page in paginator.paginate(FunctionVersion='ALL', MaxItems=500):
115-
for lambda_name in [metadata['FunctionName'] for metadata in lambda_page['Functions']]:
116-
if any(lambda_name.startswith(prefix) for prefix in lambda_prefixes):
117-
self.manage_lambda(lambda_name, enabled)
127+
return [
128+
Lambda.from_response(function)
129+
for response in paginator.paginate(FunctionVersion='ALL', MaxItems=500)
130+
for function in response['Functions']
131+
if any(function['FunctionName'].startswith(prefix)
132+
for prefix in lambda_prefixes)
133+
]
134+
135+
def manage_lambdas(self, enabled: bool):
136+
for lambda_ in self.list_deployment_lambdas():
137+
self.manage_lambda(lambda_.name, enabled)
118138

119139
def manage_lambda(self, lambda_name: str, enable: bool):
120140
lambda_settings = self._lambda.get_function(FunctionName=lambda_name)

0 commit comments

Comments
 (0)