当前位置: 首页 > 知识库问答 >
问题:

使用Bref Lambda自定义运行时和AWS CDK时出错libncurses.so.6

祁高格
2023-03-14

我正在尝试使用AWS CDK而不是无服务器在AWS Lambda中使用Bref自定义运行时。

CDK代码如下所示。

const region = cdk.Stack.of(this).region;
    //arn:aws:lambda:ap-southeast-1:209497400698:layer:php-74:18
    const brefLayerVersion = `arn:aws:lambda:${region}:209497400698:layer:php-80:8`;
    const assetPath = path.join(__dirname, '../../lambda');
    const asset = lambda.Code.fromAsset(assetPath);
    
    const lambdaFunc = new lambda.Function(this, 'LambdaFunction', {
      runtime: lambda.Runtime.PROVIDED,
      handler: 'src/index.php',
      layers: [
        lambda.LayerVersion.fromLayerVersionArn(this, 'BrefPHPLayer', brefLayerVersion),
      ],
      code: asset,
    });
    
    new cdk.CfnOutput(this, 'LambdaFunctionArn', { value: lambdaFunc.functionArn });

这里是完整的源代码https://github.com/petrabarus/cdk-bref-function

当我尝试使用AWS CLIAWS lambda invoke-function-name arn:blabla手动调用时,它显示错误。

Cloudwatch日志显示了如下内容。

/opt/bin/php: error while loading shared libraries: libncurses.so.6: cannot open shared object file: No such file or directory

如果我将部署与无服务器框架进行比较,那么配置(层、代码等)几乎是相同的。我错过了什么?

共有1个答案

陶健
2023-03-14

Bref1.0需要提供AmazonLinux2运行时。这是更新的CDK代码。


    const lambdaFunc = new lambda.Function(this, 'LambdaFunction', {
      runtime: lambda.Runtime.PROVIDED_AL2,
      handler: 'src/index.php',
      layers: [
        lambda.LayerVersion.fromLayerVersionArn(this, 'BrefPHPLayer', brefLayerVersion),
      ],
      code: asset,
    });
 类似资料:
  • 问题内容: 我已经创建了自己的文件,并通过将其设置为系统类加载器。它已经初始化,并且一切正常,但是找不到我要加载的类。这是: 我已确认该罐子存在,并且路径正确。这是我在程序中如何称呼它: 这是我得到的例外(第166行是指我尝试创建新行的行: 我什至尝试像这样显式加载类: 是什么原因造成的?它不应该“正常工作”吗? 更新: 这是来自的重要代码 更新2: 这是一个SSCCE:http : //nucl

  • 用例-有一个带有消息的主题(空,元数据)。我需要从主题创建一个Ktable,其键(metadata.entity_id)和值为metadata。这个表稍后将被用来与具有相同键的流进行连接。 一旦我将消息推送到主题-METADATA_TOPIC。这会导致以下错误。我在这里遗漏了什么吗?kafka-stream 2.2.0

  • 当我运行时,我收到这个错误: 我有一个客户端文件夹,其中包含Vue应用程序,该文件夹与我的api文件夹位于同一目录中,其中包含后端。 当我在正确的目录中单独运行启动脚本时,每个脚本都可以完美地独立运行。这是我的脚本: 我知道C:\Users\reaga\Desktop\Projects\weather-app-v3\api\client/package。json不存在,但我不知道它为什么会首先出现

  • 我们正在为eclipse RCP应用程序编写SwtBot测试用例,它在eclipse中运行良好。现在,我们正在将测试套件与现有的tycho集成,这样在创建产品时,测试用例也可以执行。下面提到为SWTBot测试套件创建的pom.xml: 请让我知道配置有什么问题?

  • 我使用下面的命令来运行我的项目。 mvn清洁安装 我使用以下命令创建了一个数据库 创建数据库密钥斗篷;将keydeave.*上的所有特权授予“keydeave”@“%”; 我使用下面的命令创建了一个docker映像,并创建了一个映像。 码头工人建造-t钥匙斗篷。 当我使用Docker运行时, docker run-p 8080:8080-e DB_VENDOR=MYSQL-e DB_ADDR=19