-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Closed
DataDog/serverless-sample-app
#499Labels
@aws-cdk/aws-lambda-pythonfeature-requestA feature should be added or improved.A feature should be added or improved.p2
Description
Describe the bug
While trying to create a Lambda Layer with python I have stumbled into network issue with Docker.
Regression Issue
- Select this option if this issue appears to be a regression.
Last Known Working CDK Library Version
No response
Expected Behavior
cdk synth should be successful.
Current Behavior
while running cdk synth:
$ cdk synth
...
#5 [2/2] RUN python -m venv /usr/app/venv && mkdir /tmp/pip-cache && chmod -R 777 /tmp/pip-cache && pip install --upgrade pip && mkdir /tmp/poetry-cache && chmod -R 777 /tmp/poetry-cache && pip install pipenv==2022.4.8 poetry==1.5.1 && rm -rf /tmp/pip-cache/* /tmp/poetry-cache/*
#5 9.835 Requirement already satisfied: pip in /usr/app/venv/lib/python3.12/site-packages (24.3.1)
#5 29.86 WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7cd455a78800>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/pip/
...
#5 285.5 ERROR: Could not find a version that satisfies the requirement pipenv==2022.4.8 (from versions: none)
#5 305.5 ERROR: No matching distribution found for pipenv==2022.4.8
#5 ERROR: process "/bin/sh -c python -m venv /usr/app/venv && mkdir /tmp/pip-cache && chmod -R 777 /tmp/pip-cache && pip install --upgrade pip && mkdir /tmp/poetry-cache && chmod -R 777 /tmp/poetry-cache && pip install pipenv==$PIPENV_VERSION poetry==$POETRY_VERSION && rm -rf /tmp/pip-cache/* /tmp/poetry-cache/*" did not complete successfully: exit code: 1
...
Dockerfile:22
--------------------
21 |
22 | >>> RUN \
23 | >>> # create a new virtualenv for python to use
24 | >>> # so that it isn't using root
25 | >>> python -m venv /usr/app/venv && \
26 | >>> # Create a new location for the pip cache
27 | >>> mkdir /tmp/pip-cache && \
28 | >>> # Ensure all users can write to pip cache
29 | >>> chmod -R 777 /tmp/pip-cache && \
30 | >>> # Upgrade pip (required by cryptography v3.4 and above, which is a dependency of poetry)
31 | >>> pip install --upgrade pip && \
32 | >>> # Create a new location for the poetry cache
33 | >>> mkdir /tmp/poetry-cache && \
34 | >>> # Ensure all users can write to poetry cache
35 | >>> chmod -R 777 /tmp/poetry-cache && \
36 | >>> # Install pipenv and poetry
37 | >>> pip install pipenv==$PIPENV_VERSION poetry==$POETRY_VERSION && \
38 | >>> # Ensure no temporary files remain in the caches
39 | >>> rm -rf /tmp/pip-cache/* /tmp/poetry-cache/*
40 |
--------------------
ERROR: failed to solve: process "/bin/sh -c python -m venv /usr/app/venv && mkdir /tmp/pip-cache && chmod -R 777 /tmp/pip-cache && pip install --upgrade pip && mkdir /tmp/poetry-cache && chmod -R 777 /tmp/poetry-cache && pip install pipenv==$PIPENV_VERSION poetry==$POETRY_VERSION && rm -rf /tmp/pip-cache/* /tmp/poetry-cache/*" did not complete successfully: exit code: 1
jsii.errors.JavaScriptError:
Error: docker exited with status 1
--> Command: docker build -t cdk-f8515da79edfce24e7a7b2abd249e3ed0eeeb071f8c15e42ebeabfa08cebc749 --platform "linux/amd64" --build-arg "IMAGE=public.ecr.aws/sam/build-python3.12" "/tmp/jsii-kernel-pAlGbN/node_modules/@aws-cdk/aws-lambda-python-alpha/lib"
at dockerExec (/tmp/jsii-kernel-pAlGbN/node_modules/aws-cdk-lib/core/lib/private/asset-staging.js:2:237)
at DockerImage.fromBuild (/tmp/jsii-kernel-pAlGbN/node_modules/aws-cdk-lib/core/lib/bundling.js:1:4761)
at new Bundling (/tmp/jsii-kernel-pAlGbN/node_modules/@aws-cdk/aws-lambda-python-alpha/lib/bundling.js:40:50)
at Bundling.bundle (/tmp/jsii-kernel-pAlGbN/node_modules/@aws-cdk/aws-lambda-python-alpha/lib/bundling.js:25:50)
at new PythonLayerVersion (/tmp/jsii-kernel-pAlGbN/node_modules/@aws-cdk/aws-lambda-python-alpha/lib/layer.js:50:39)
at new PythonLayerVersion (/tmp/jsii-kernel-pAlGbN/node_modules/aws-cdk-lib/core/lib/prop-injectable.js:1:488)
at Kernel._Kernel_create (/tmp/tmpo7jy_gi8/lib/program.js:548:25)
at Kernel.create (/tmp/tmpo7jy_gi8/lib/program.js:218:93)
at KernelHost.processRequest (/tmp/tmpo7jy_gi8/lib/program.js:15467:36)
at KernelHost.run (/tmp/tmpo7jy_gi8/lib/program.js:15427:22)
...
RuntimeError: docker exited with status 1
--> Command: docker build -t cdk-f8515da79edfce24e7a7b2abd249e3ed0eeeb071f8c15e42ebeabfa08cebc749 --platform "linux/amd64" --build-arg "IMAGE=public.ecr.aws/sam/build-python3.12" "/tmp/jsii-kernel-pAlGbN/node_modules/@aws-cdk/aws-lambda-python-alpha/lib"
Subprocess exited with error 1
Reproduction Steps
Example code:
from aws_cdk import (
Stack,
aws_lambda as _lambda,
aws_lambda_python_alpha as lambda_python,
)
from constructs import Construct
class LambdaStack(Stack):
def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
super().__init__(scope, construct_id, **kwargs)
# Lambda Layer from Python requirements
layer = lambda_python.PythonLayerVersion(
self, "LibLayer",
entry="layer",
compatible_runtimes=[_lambda.Runtime.PYTHON_3_12],
bundling=lambda_python.BundlingOptions(
network="host",
),
)
The layer folder:
layer/
└── requirements.txt
The layer/requirements.txt
jwt==1.3.1
requests==2.32.3
Possible Solution
It seems, that network="host" parameter is ignored.
Additional Information/Context
No response
AWS CDK Library version (aws-cdk-lib)
2.196.0
AWS CDK CLI version
2.1004.0 (build f0ad96e)
Node.js Version
v20.19.2
OS
Ubuntu 24.04.2 LTS
Language
Python
Language Version
Python 3.12.3
Other information
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
@aws-cdk/aws-lambda-pythonfeature-requestA feature should be added or improved.A feature should be added or improved.p2