private createImageProcessingTaskAndRequiredResources()

in cdk/lib/partners/ACE.ts [176:203]


    private createImageProcessingTaskAndRequiredResources(lambdaDependencies: lambda.LayerVersion) {
        const imageProcessingLambda = new lambda.Function(this, "ImageLambdaFunction", {
            runtime: lambda.Runtime.NODEJS_12_X,
            handler: "provider-ace.ProcessImages",
            layers: [lambdaDependencies],
            memorySize: 1024,
            timeout: Duration.minutes(2),
            code: lambda.Code.fromAsset(path.join(__dirname, "..", "..", "..", "src", "handlers")),
            environment: {
                OUTPUT_BUCKET_NAME: this.destinationBucket.bucketName,
            }
        });

        const imageProcessingTask = new tasks.LambdaInvoke(this, `${this.providerIdentifier}-Image`, {
            lambdaFunction: imageProcessingLambda,
            payloadResponseOnly: true,
            payload: TaskInput.fromObject({
                "bucketName.$": "$.Image.bucketName",
                "objectKey.$": "$.Image.objectKey",
                "assetId.$": "$.AssetId"
            })
        });

        this.sourceBucket.grantRead(imageProcessingLambda);
        this.destinationBucket.grantReadWrite(imageProcessingLambda);

        return imageProcessingTask;
    }