【问题标题】:AWS CDK - Unable to increase Lambda timeoutAWS CDK - 无法增加 Lambda 超时
【发布时间】:2021-08-29 06:28:43
【问题描述】:

我的 lambda 函数需要更多时间来执行,所以当我增加它时

    const postReader_NewPost = new lambda.Function(this, 'PostReader_NewPost', {
      code: lambda.Code.fromAsset('lambda'),
      runtime: lambda.Runtime.PYTHON_2_7,
      handler: 'PostReader_NewPost.handler',
      timeout: Duration.seconds(300),
      description: "",
      environment: {
        "DB_TABLE_NAME": table.tableName,
        "SNS_TOPIC": topic.topicArn
      },
      role:role,
    });

我收到以下错误

Type 'import("c:/Users/myusername/Documents/GitHub/cdk_polly_website/node_modules/@aws-cdk/core/lib/duration").Duration' is not assignable to type 'import("c:/Users/myusername/Documents/GitHub/cdk_polly_website/node_modules/@aws-cdk/aws-dynamodb/node_modules/@aws-cdk/core/lib/duration").Duration'.
  Types have separate declarations of a private property 'amount'.ts(2322)
function.d.ts(68, 14): The expected type comes from property 'timeout' which is declared here on type 'FunctionProps'

我已经在课堂上声明了

import { Duration } from '@aws-cdk/core';

我的 package.json 有以下依赖项

"dependencies": {
    "@aws-cdk/aws-apigateway": "^1.88.0",
    "@aws-cdk/aws-dynamodb": "^1.88.0",
    "@aws-cdk/aws-iam": "^1.88.0",
    "@aws-cdk/aws-lambda": "^1.88.0",
    "@aws-cdk/aws-lambda-event-sources": "^1.88.0",
    "@aws-cdk/aws-sns": "^1.88.0",
    "@aws-cdk/aws-sns-subscriptions": "^1.88.0",
    "@aws-cdk/core": "1.88.0",
    "source-map-support": "^0.5.16"
  }

感谢帮助。谢谢

【问题讨论】:

    标签: aws-lambda aws-cdk


    【解决方案1】:

    这种方式总是对我有用: aws-examples

    导入核心,然后使用 Duration 作为core.Duration

    我不确定它是否会有所帮助,但看起来您的核心导入是通过这种方式从 aws-dynamodb 获取的。

    如果这能解决问题,我想调查一下原因。

    【讨论】:

      【解决方案2】:

      通过 npm ls 我发现我没有相同版本的不同 aws cdk 库

      npm ls
      cdk_polly_website@0.1.0 C:\Users\amuham210\Documents\GitHub\cdk_polly_website
      +-- @aws-cdk/assert@1.88.0
      +-- @aws-cdk/aws-apigateway@1.89.0
      +-- @aws-cdk/aws-dynamodb@1.89.0
      +-- @aws-cdk/aws-iam@1.89.0
      +-- @aws-cdk/aws-lambda-event-sources@1.89.0
      +-- @aws-cdk/aws-lambda@1.89.0
      +-- @aws-cdk/aws-sns-subscriptions@1.89.0
      +-- @aws-cdk/aws-sns@1.89.0
      +-- @aws-cdk/core@1.88.0
      +-- @types/jest@26.0.20
      +-- @types/node@10.17.27
      +-- aws-cdk@1.88.0
      +-- jest@26.6.3
      +-- source-map-support@0.5.19
      +-- ts-jest@26.5.1
      +-- ts-node@9.1.1
      `-- typescript@3.9.9
      

      所以我明确安装了版本以使其相同

      npm install @aws-cdk/core@1.89.0
      

      这解决了问题。

      【讨论】:

        【解决方案3】:

        您正在使用不同版本的@aws-cdk/core 和@aws-cdk/aws-lambda。

        【讨论】:

          【解决方案4】:

          从“@aws-cdk/core”导入{Duration};

          在 api.constructs 文件中添加超时变量

          超时:Duration.seconds(30)

          【讨论】:

            猜你喜欢
            • 2021-06-28
            • 2020-12-23
            • 1970-01-01
            • 1970-01-01
            • 2020-09-15
            • 2020-02-04
            • 2019-04-03
            • 2021-06-08
            相关资源
            最近更新 更多