簡體   English   中英

本地節點版本會影響 aws 的 cdk 命令嗎?

[英]Does local node version affect the cdk command for aws?

我想知道我的計算機上是否有節點版本 16,如果我使用 cdk 在本地開發我的 aws lambda 並將運行時指定為 NODEJS_14,它還能工作嗎? 代碼片段如下所示。 順便說一句,我使用的是 aws cdk 版本 2.24,它是較新的版本。 但是當我運行 cdk synth 時,它給了我錯誤:spawnSync docker ENOENT。

import { aws_lambda_nodejs as lambda, aws_lambda as awslambda } from "aws-cdk-lib";
import { Runtime } from "aws-cdk-lib/aws-lambda";
import { Construct } from 'constructs';
interface DocumentManagementAPIProps {
}

export class DocumentManagementAPI extends Construct {
    constructor(scope: Construct, id: string, props?: DocumentManagementAPIProps) {
        super(scope, id);
        const getDocumentsFunction = new lambda.NodejsFunction(this, 'getDocumentsFunction', {
            runtime: awslambda.Runtime.NODEJS_14_X,
            entry: 'api/getDocuments/index.ts',
            handler: 'getDocuments',
            bundling: {
                externalModules: ['aws-sdk']
            }
        })
    }
}

您在 CDK 中定義的運行時將是您的 Lambda 使用的運行時,與您的本地環境無關。

所以是的,從技術上講這會起作用,但是如果您不希望由此版本差異導致意外失敗,您最好使用相同的 Node 版本來測試您的代碼(您可以使用nvm 之類的工具在本地管理多個 Node 版本)。

此外,您將無法使用NODEJS_14_X運行時運行 TypeScript 代碼,您必須首先在 JavaScript 中轉譯您的代碼(有關此主題的AWS 文檔中的更多信息)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM