Open divergentdave opened 5 years ago
I also need this functionality.
As a workaround, you can create a file called sitecustomize.py
with the following content:
from aws_lambda_builders.workflows.python_pip.workflow import PythonPipWorkflow
PythonPipWorkflow.EXCLUDED_FILES = tuple(x for x in PythonPipWorkflow.EXCLUDED_FILES if x != "*.so")
This file will be executed when the Python interpreter starts, before it opens the interactive terminal or runs the script. It will search for a file with that name in the site-packages directories, which includes the working directory (so place the file there). Similarly, some other site-specific configuration hook can be used to patch the patterns of excluded files.
This needs to be exposed in AWS SAM to support other tools like - the AWS cfn tool set. - IE - https://github.com/aws-cloudformation/cloudformation-cli-python-plugin
Directly related to this issue - https://github.com/aws-cloudformation/cloudformation-cli-python-plugin/issues/247
Description:
I'm working on a Python project that indirectly uses a native library through
ctypes
, so I need to supply the library,libspatialindex.so
, in the Lambda function's package. However, when I runsam build
, the file does not get copied into the output. It looks like this is due to the EXCLUDED_FILES list forPythonPipWorkflow
.Steps to reproduce the issue:
.so
in the directory pointed to byCodeUri
sam build
Observed result: The file should be copied into
.aws-sam/build/FunctionName/
Expected result: The file is missing
Additional environment details (Ex: Windows, Mac, Amazon Linux etc) I am using SAM CLI version 0.16.0 on Debian Stretch