无法使用 CDK + Lambda 捆绑资产错误

2023-12-25

我有这个项目结构(其中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!


您可能需要在本地捆绑 Python 函数:

import * as cdk from '@aws-cdk/core';
import { Code, Runtime, Function} from '@aws-cdk/aws-lambda';
import * as path from 'path';
import { execSync } from 'child_process';

export class CdkLocalBundlingExampleStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const functionDir = path.join(__dirname, "functions", "exampleFunction")

    const exampleFunction = new Function(this, "ExampleFunction", {
      handler: 'index.handler',
      runtime: Runtime.PYTHON_3_8,
      code: Code.fromAsset(functionDir, {
        bundling: {
          image: Runtime.PYTHON_3_8.bundlingImage,
          local: {
            tryBundle(outputDir: string) {
              try {
                execSync('pip3 --version')
              } catch {
                return false
              }

              execSync(`pip install -r ${path.join(functionDir, "requirements.txt")} -t ${path.join(outputDir)}`)
              execSync(`cp -au ${functionDir}/* ${path.join(outputDir)}`)
              return true
            }
          }
        }
      })
    })
  }
}

这是来自:

https://github.com/1davidmichael/cdk-local-bundling-example https://github.com/1davidmichael/cdk-local-bundling-example

那里还引用了两个开放的 GitHub 问题(它们已自动关闭,但仍然有效)。

https://github.com/aws/aws-cdk/issues/12940 https://github.com/aws/aws-cdk/issues/12940

https://github.com/aws/aws-cdk/issues/11230 https://github.com/aws/aws-cdk/issues/11230

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 CDK + Lambda 捆绑资产错误 的相关文章

随机推荐

  • 覆盖两个图块的多行文字 y 轴标签

    我该如何使用mtext side 2 text y axis 为下面示例中的两个图块放置 y 轴标签 也就是说 我希望能够放置一个标签 而不是放置两个单独的 y 轴标签 layout matrix 1 2 ncol 1 widths 1 h
  • RStudio - 深色主题 - 白色菜单栏

    我全新安装了带有 Cinnamon 桌面的 Arch Linux 当我在 RStudio 中将主题更改为深色时 顶部面板仍然是白色的 为什么会这样 我该如何改变它 您是否已更新到 RStudio 的最新版本
  • 我可以为`std`命名空间添加推导指南吗?

    假设我想制作一个新的演绎指南 使以下内容成为可能 std string str std basic string view sv str 这是一个好的定制吗 命名空间 std 2 4 https timsong cpp github io
  • Xcode 5 - 启动图像未在 iPhone 应用程序的 iPad 中加载

    我正在 Xcode 5 上开发一个 iPhone 应用程序 它具有 iOS 7 设计 但部署目标是 iOS 6 0 我的问题与应用程序的启动屏幕有关 它在 iPhone 上运行良好 现在 当我尝试在 iPad 上运行应用程序时 它没有加载启
  • Django 发送电子邮件:SMTPServerDisconnected:连接意外关闭

    你好 我想发送电子邮件激活使用 django 注册 redux 这是我的设置 py EMAIL BACKEND django core mail backends smtp EmailBackend ACCOUNT ACTIVATION D
  • scala 宏:延迟类型推断

    序言 这是基于 Travis Brown 的基于宏的解决方案 https stackoverflow com a 13447439 185840复制案例类属性 Given trait Entity E lt Entity E self E
  • PyYAML :控制 yaml.load() 调用的项目的顺序

    我有一个 yaml 设置文件 它在数据库中创建一些记录 setting1 name item item name1 text anothersetting2 name item item sub setting name item item
  • 将动态 JSON 值解析为 Java 对象

    在我的应用程序中 我有很多具有排序和过滤功能的概述 表格 由于不同的列可以保存不同的值类型 字符串 数字 日期 集合等 因此这些列的过滤器也可以带来不同的值 让我向您展示一些示例 已转换为 JSON 通过 REST 请求发送到服务器 对于简
  • XE7更新1和iOS 8.1模拟器不工作

    在 Delphi XE7 中将目标设置为 iOS 8 1 Simulator 时 应用程序崩溃 它部署得很好 也可以运行 但是 firemonkey 启动屏幕仍然打开并且永远不会完成加载 这种情况发生在一个普通的新移动应用程序中 只在表单中
  • SignalR:生成的代理与动态创建的集线器文件

    SignalR 集线器代理生成器的输出与动态生成的集线器代理文件本质上相同吗 如果不是 有什么区别 我的问题的一些背景 由于执行期间的依赖性问题 我正在努力使用命令行工具创建集线器代理 并且我确实认为获取动态生成的文件可能是一种更简单的方法
  • 限制 Visual Studio 的编辑区域仅显示一个函数或方法

    几年前 当我使用 VB 6 时 我可以让编辑器窗口只显示我正在处理的函数 方法 我怀念这一点 有没有一种方法 一个插件 或者一个黑客 可以让我现在做同样的事情 Thanks 看来此功能已被删除 而且没有办法解决这个问题 也许您可 以考虑为
  • ValueError:无法解析相关模型u'mutech.branch'

    我正在尝试在 models py 文件中创建外键 但是在运行 python manage py migrate 命令时 我收到以下错误 之前一切都很好 即使我撤消了所有更改 它仍然给出相同的错误 我也尝试删除我的数据库 但没有任何效果 Ap
  • SKPhysicsBody 不符合预期

    我有以下代码来创建一个矩形砖块和一个与其关联的物理体 我预计物理主体是一个与砖块相同大小和位置的实心矩形 但我得到的主体有一个位置偏移 也许还有尺寸差异 我错过的坐标系是否存在问题 解决这个问题的正确方法是什么 void addBrick
  • 跨多个区域部署 Firebase Cloud Functions

    我想跨多个区域部署相同的云功能 有简单的方法吗 由于您没有说明要部署什么类型的函数 因此我假设 https 函数 将任何其他类型的 后台 功能部署到多个区域是没有意义的 因为每个区域都可能触发每个事件 这将相当混乱 使用 https 函数
  • 当提供正则表达式时,Java 中的 String.split() 方法到底如何工作?

    我正在准备 OCPJP 考试 遇到以下示例 class Test public static void main String args String test I am preparing for OCPJP String tokens
  • UITableView 中替代单元格的不同高度

    如何制作具有不同高度的备用单元 我需要 cell1 的高度为 60 cell2 的高度为 30 我怎样才能做到这一点 提前致谢 您可以通过表视图的委托方法设置单元格的高度 CGFloat tableView UITableView tabl
  • 如何为 JSON 对象设置原型?

    我正在从服务器接收一些 JSON 对象 并且我想将其 类型转换 或 祝福 为具有已定义方法的对象 有没有办法为普通 JSON 对象设置原型 function MyClass someValue this myProperty someVal
  • Firefox 3 窗口焦点和模糊

    窗口 blur 函数 窗口焦点 假 焦点 函数 窗口焦点 真 问题是 在 Firefox 3 中 当我创建新选项卡时 它不会丢失窗口焦点 而在ff2 ie7中确实输了 在 ff3 中 当我选择另一个程序时 它只会失去窗口焦点 有人有解决这个
  • 为什么 reshape2 融化对我来说返回值 = NA?

    为什么重塑2melt return value NA for me 它对我来说适用于 reshape 但不适用于 reshape2 这是一个示例数据文件 station id year month day h1 h2 h3 h4 h5 h6
  • 无法使用 CDK + Lambda 捆绑资产错误

    我有这个项目结构 其中control是我的项目的名称和根 control src control loader gt this has a function inside called also control loader utils s