private createMetadataProcessingTaskAndRequiredResources()

in cdk/lib/partners/ACE.ts [224:250]


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

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

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

        return metadataProcessingTask;
    }