From 2dec134aac6770b90ced80aa50a59e5862df332a Mon Sep 17 00:00:00 2001 From: jkeifer Date: Wed, 24 Aug 2022 08:50:00 -0700 Subject: [PATCH] lambda handlers explicit in definition.yml #139 --- .../builtins/feeders/feed-rerun/definition.yml | 1 + src/cirrus/builtins/functions/api/definition.yml | 1 + src/cirrus/builtins/functions/process/definition.yml | 1 + .../builtins/functions/update-state/definition.yml | 1 + src/cirrus/builtins/tasks/post-batch/definition.yml | 1 + src/cirrus/builtins/tasks/pre-batch/definition.yml | 1 + src/cirrus/builtins/tasks/publish/definition.yml | 1 + src/cirrus/core/components/base/_lambda.py | 12 ++++++++---- src/cirrus/core/components/files/definitions.py | 1 + src/cirrus/core/project.py | 3 +++ 10 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/cirrus/builtins/feeders/feed-rerun/definition.yml b/src/cirrus/builtins/feeders/feed-rerun/definition.yml index 83be7eec..c6f620f8 100644 --- a/src/cirrus/builtins/feeders/feed-rerun/definition.yml +++ b/src/cirrus/builtins/feeders/feed-rerun/definition.yml @@ -2,6 +2,7 @@ description: Rerun items in the database lambda: memorySize: 128 timeout: 900 + handler: lambda_function.lambda_handler iamRoleStatements: - Effect: "Allow" Action: diff --git a/src/cirrus/builtins/functions/api/definition.yml b/src/cirrus/builtins/functions/api/definition.yml index 15d72642..7b4a433b 100644 --- a/src/cirrus/builtins/functions/api/definition.yml +++ b/src/cirrus/builtins/functions/api/definition.yml @@ -2,6 +2,7 @@ description: Cirrus API lambda: memorySize: 128 timeout: 10 + handler: lambda_function.lambda_handler events: - http: GET / - http: GET /{proxy+} diff --git a/src/cirrus/builtins/functions/process/definition.yml b/src/cirrus/builtins/functions/process/definition.yml index f9569cce..ce45a66c 100644 --- a/src/cirrus/builtins/functions/process/definition.yml +++ b/src/cirrus/builtins/functions/process/definition.yml @@ -5,6 +5,7 @@ environment: lambda: memorySize: 128 timeout: 900 + handler: lambda_function.lambda_handler events: - sqs: arn: !GetAtt ProcessQueue.Arn diff --git a/src/cirrus/builtins/functions/update-state/definition.yml b/src/cirrus/builtins/functions/update-state/definition.yml index 6a88f50d..5ed13131 100644 --- a/src/cirrus/builtins/functions/update-state/definition.yml +++ b/src/cirrus/builtins/functions/update-state/definition.yml @@ -2,6 +2,7 @@ description: update the cirrus database with the execution state lambda: memorySize: 128 timeout: 15 + handler: lambda_function.lambda_handler events: - eventBridge: pattern: diff --git a/src/cirrus/builtins/tasks/post-batch/definition.yml b/src/cirrus/builtins/tasks/post-batch/definition.yml index 5f97b00b..6f5a91ea 100644 --- a/src/cirrus/builtins/tasks/post-batch/definition.yml +++ b/src/cirrus/builtins/tasks/post-batch/definition.yml @@ -2,6 +2,7 @@ description: Post process batch job by copying input from S3 lambda: memorySize: 128 timeout: 15 + handler: lambda_function.lambda_handler iamRoleStatements: - Effect: "Allow" Action: diff --git a/src/cirrus/builtins/tasks/pre-batch/definition.yml b/src/cirrus/builtins/tasks/pre-batch/definition.yml index 6b9961a5..0fba9378 100644 --- a/src/cirrus/builtins/tasks/pre-batch/definition.yml +++ b/src/cirrus/builtins/tasks/pre-batch/definition.yml @@ -2,6 +2,7 @@ description: Pre process batch job by copying input to S3 lambda: memorySize: 128 timeout: 15 + handler: lambda_function.lambda_handler iamRoleStatements: - Effect: "Allow" Action: diff --git a/src/cirrus/builtins/tasks/publish/definition.yml b/src/cirrus/builtins/tasks/publish/definition.yml index bcba9c3e..b3432299 100644 --- a/src/cirrus/builtins/tasks/publish/definition.yml +++ b/src/cirrus/builtins/tasks/publish/definition.yml @@ -2,6 +2,7 @@ description: Publish resulting STAC Collections and Items to catalog, and option lambda: memorySize: 128 timeout: 30 + handler: lambda_function.lambda_handler iamRoleStatements: - Effect: "Allow" Action: diff --git a/src/cirrus/core/components/base/_lambda.py b/src/cirrus/core/components/base/_lambda.py index a806a6f5..cdf912da 100644 --- a/src/cirrus/core/components/base/_lambda.py +++ b/src/cirrus/core/components/base/_lambda.py @@ -63,10 +63,11 @@ def load_config(self): + project_reqs })) - if not hasattr(self.lambda_config, 'module'): + # if this is a non-container lambda that needs to be packaged + # by serverless, then we need to ensure the module points to the + # place in the build dir where we'll copy all the code + if hasattr(self.lambda_config, 'handler'): self.lambda_config.module = f'lambdas/{self.name}' - if not hasattr(self.lambda_config, 'handler'): - self.lambda_config.handler = 'lambda_function.lambda_handler' @property def enabled(self): @@ -92,11 +93,14 @@ def copy_for_config(self): return lc def get_outdir(self, project_build_dir: Path) -> Path: - return project_build_dir.joinpath(self.lambda_config.module) + return project_build_dir.joinpath(self.lambda_config.module) if self.lambda_enabled else None def copy_to_outdir(self, outdir: Path) -> None: import shutil + if not self.lambda_enabled: + return + try: outdir.mkdir(parents=True) except FileExistsError: diff --git a/src/cirrus/core/components/files/definitions.py b/src/cirrus/core/components/files/definitions.py index 50e0712d..95dad3b4 100644 --- a/src/cirrus/core/components/files/definitions.py +++ b/src/cirrus/core/components/files/definitions.py @@ -33,6 +33,7 @@ lambda_lambda = '''lambda: memorySize: 128 timeout: 60 + handler: lambda_function.lambda_handler pythonRequirements: include: [] '''.format diff --git a/src/cirrus/core/project.py b/src/cirrus/core/project.py index cfdb38dc..6622ea42 100644 --- a/src/cirrus/core/project.py +++ b/src/cirrus/core/project.py @@ -158,6 +158,9 @@ def build(self) -> None: # setup all required lambda dirs fn_dirs = set() for fn in self.groups.lambdas: + if not fn.lambda_enabled: + continue + outdir = fn.get_outdir(bd).resolve() if outdir in fn_dirs: logger.debug(