Skip to content

Commit ab7df38

Browse files
lambda template has been added (#72)
1 parent 7a21db9 commit ab7df38

File tree

5 files changed

+52
-1
lines changed

5 files changed

+52
-1
lines changed

aws/mens_t20i_dataset_stack.py

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ def __init__(
5050

5151
######################################## SECRET MANAGER Configurations ##########################################
5252
__db_secrets = get_secret_from_secrets_manager(self._secret_manager_client, "db_secret")
53+
__kaggle_secrets = get_secret_from_secrets_manager(self._secret_manager_client, "kaggle_credentials")
54+
55+
######################################## LAMBDA LAYER Configurations ##########################################
5356

5457
# Lambda layer containing the necessary code and packages
5558
package_layer = _lambda.LayerVersion(
@@ -236,7 +239,7 @@ def __init__(
236239
package_layer,
237240
pandas_layer,
238241
],
239-
memory_size=300,
242+
memory_size=1024,
240243
timeout=Duration.minutes(10),
241244
)
242245
# Permissions for lambda functions to the S3 bucket
@@ -252,3 +255,35 @@ def __init__(
252255
resources=["*"],
253256
)
254257
)
258+
259+
# Lambda function to upload the dataset to KAGGLE and create a new version of dataset
260+
upload_dataset_to_kaggle_lambda = _lambda.Function(
261+
self,
262+
"upload_dataset_to_kaggle_lambda",
263+
code=_lambda.Code.from_asset("output/upload_dataset_to_kaggle_lambda.zip"),
264+
handler="upload_dataset_to_kaggle_lambda.handler",
265+
runtime=_lambda.Runtime.PYTHON_3_11,
266+
environment={
267+
"DOWNLOAD_BUCKET_NAME": cricsheet_data_downloading_bucket.bucket_name,
268+
**__kaggle_secrets,
269+
},
270+
function_name="upload-dataset-to-kaggle-lambda",
271+
layers=[
272+
package_layer,
273+
],
274+
memory_size=300,
275+
timeout=Duration.minutes(10),
276+
)
277+
# Permissions for lambda functions to the S3 bucket
278+
cricsheet_data_downloading_bucket.grant_read(upload_dataset_to_kaggle_lambda)
279+
# Policy for CloudWatch logging
280+
upload_dataset_to_kaggle_lambda.add_to_role_policy(
281+
iam.PolicyStatement(
282+
actions=[
283+
"logs:CreateLogGroup",
284+
"logs:CreateLogStream",
285+
"logs:PutLogEvents",
286+
],
287+
resources=["*"],
288+
)
289+
)

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
kaggle == 1.7.4.5
12
pymongo == 4.10.1
23
requests == 2.32.3

src/build/constants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
'src/mens_t20i_data_collector/_lambdas/download_from_cricsheet/download_from_cricsheet_lambda_function.py',
1313
'src/mens_t20i_data_collector/_lambdas/extract_deliverywise_cricsheet_data/extract_deliverywise_cricsheet_data_lambda_function.py',
1414
'src/mens_t20i_data_collector/_lambdas/extract_matchwise_cricsheet_data/extract_matchwise_cricsheet_data_lambda_function.py',
15+
'src/mens_t20i_data_collector/_lambdas/upload_dataset_to_kaggle/upload_dataset_to_kaggle_lambda.py',
1516
]
1617
PACKAGE_NAME = "mens_t20i_data_collector"
1718
PYTHON_VERSION = "3.11"

src/mens_t20i_data_collector/_lambdas/upload_dataset_to_kaggle/__init__.py

Whitespace-only changes.
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import logging
2+
from mens_t20i_data_collector._lambdas.utils import exception_handler
3+
4+
# Set up Logging
5+
logger = logging.getLogger(__name__)
6+
logger.setLevel(logging.INFO)
7+
8+
@exception_handler # noqa: Vulture
9+
def handler():
10+
"""
11+
Lambda function handler to upload dataset to Kaggle.
12+
"""
13+
logger.info("Uploading dataset to Kaggle")
14+
return "Dataset uploaded to Kaggle successfully"

0 commit comments

Comments
 (0)