async function createLambdaFunction()

in src/pipelineResources.js [411:451]


async function createLambdaFunction() {
    startSpinner('Creating Lambda function', true);
    let lambdaName = NAME +'LambdaFunction';
    let params = {
        Code: {
            ZipFile: ZIP
        },
        FunctionName: lambdaName,
        Handler: 'index.handler',
        Role: LAMBDA_ROLE,
        Runtime: 'nodejs18.x',
        Description: 'Neptune GraphQL Resolver for AppSync',
        Timeout: 15,
        MemorySize: 128,
        Environment: {
            Variables: {
                "NEPTUNE_HOST": NEPTUNE_HOST,
                "NEPTUNE_PORT": NEPTUNE_PORT,
                "NEPTUNE_IAM_AUTH_ENABLED": NEPTUNE_IAM_AUTH.toString(),
                "LOGGING_ENABLED": "false",
                "NEPTUNE_DB_NAME": NEPTUNE_DB_NAME,
                "NEPTUNE_REGION": REGION,
                "NEPTUNE_DOMAIN": parseNeptuneDomainFromHost(NEPTUNE_HOST),
                "NEPTUNE_TYPE": NEPTUNE_TYPE,
            },
        },
    };

    if (!NEPTUNE_IAM_AUTH) {
        params.VpcConfig = {
            SubnetIds: NEPTUNE_DBSubnetIds,
            SecurityGroupIds: [NEPTUNE_VpcSecurityGroupId]
        }
    }
    const lambdaClient = new LambdaClient({region: REGION});
    const data = await lambdaClient.send(new LambdaCreateFunctionCommand(params));
    LAMBDA_ARN = data.FunctionArn;
    storeResource({LambdaFunction: lambdaName});
    succeedSpinner('Lambda Name: ' + yellow(lambdaName) + ' ARN: ' + yellow(LAMBDA_ARN), {logLevel: 'debug'});
    loggerInfo('Lambda function created')
}