我有这个项目结构(其中control
是我的项目的名称和根):
control
|_ src
|_ control_loader -> this has a function inside called also control_loader
|_ utils
|_ some_helper_function.py
|_ __init__.py
|_ __init__.py
|_ lib
|_ some-cdk-where-i-declare-a-lambda.ts
|_ requirements.txt
Inside some-cdk-where-i-declare-a-lambda.ts
我有这个(以及所有其他必要的东西):
new Function(this, `${this.appName}${this.stageName}ControlLambdaLoader`, {
code: Code.fromAsset(path.join(__dirname, '../src'), {
bundling: {
image: Runtime.PYTHON_3_8.bundlingImage,
command: [
'bash', '-c',
'pip install -r requirements.txt -t /asset-output && cp -au . /asset-output',
],
},
}),
runtime: Runtime.PYTHON_3_8,
handler: 'control_loader.control_loader',
vpc,
vpcSubnets: vpc.selectSubnets({
subnetType: SubnetType.PRIVATE_WITH_NAT,
}),
});
然而,在运行时cdk synth
,我得到以下信息:
(venv) PS C:\Users\rodri\Documents\control> cdk synth
npx: installed 15 in 1.145s
Bundling asset controlPipelineStack/controlBetaDeployStage/controlbetaStack/controlbeta/controlbetaControlLambdaLoader/Code/Stage...
Failed to bundle asset controlPipelineStack/controlBetaDeployStage/controlbetaStack/controlbeta/controlbetaControlLambdaLoader/Code/Stage, bundle output is located at C:\Users\rodri\Documents\control\cdk.out\asset.059c3b383943a1fadd3d933b670a7d351991e742d24a9785474b35c846267fde-error: Error: spawnSync docker EN
OENT
这是一个非常神秘的错误。我知道捆绑是由 docker 完成的,以将依赖项作为 zip 资产推送,但是,知道这个失败在哪里吗?我也尝试过改变位置requirements.txt
到里面src
但这没有帮助。我可以部署删除 Lambda 后的所有内容。我究竟做错了什么?另外,如何使捆绑包含some_helper_function.py
还有?
Thanks!