Options
All
  • Public
  • Public/Protected
  • All
Menu

Class PrismaLayer

Construct a lambda layer with Prisma libraries and generated clients. Copies over selected node_modules. Be sure to omit the prisma layer modules from your function bundles with the externalModules option.

example

With Generator

  // shared lambda layer
  const prismaLayer = new PrismaLayer(this, "PrismaLayer", {
    layerVersionName: `${id}-app`,
    removalPolicy: isProduction ? RemovalPolicy.RETAIN : RemovalPolicy.DESTROY,
    projectRoot: path.join(__dirname, "..", "..", ".."),
    prismaPath: path.join("packages", "repo", "prisma"),
  })

  // default lambda function options
  const functionOptions: FunctionOptions = {
    layers: [prismaLayer],
    bundling: {
      externalModules: appLayer.externalModules,
    },
  }

Hierarchy

  • LayerVersion
    • PrismaLayer

Index

Constructors

constructor

  • Parameters

    Returns PrismaLayer

Properties

Optional Readonly compatibleRuntimes

compatibleRuntimes: Runtime[]

The runtimes compatible with this Layer.

stability

stable

Readonly env

env: ResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.

stability

stable

externalModules

externalModules: string[]

Readonly layerVersionArn

layerVersionArn: string

The ARN of the Lambda Layer version that this Layer defines.

stability

stable

Readonly node

node: ConstructNode

The construct tree node associated with this construct.

stability

stable

Protected Readonly physicalName

physicalName: string

Returns a string-encoded token that resolves to the physical name that should be passed to the CloudFormation resource.

This value will resolve to one of the following:

  • a concrete value (e.g. "my-awesome-bucket")
  • undefined, when a name should be generated by CloudFormation
  • a concrete name generated automatically during synthesis, in cross-environment scenarios.
stability

stable

Readonly stack

stack: Stack

The stack in which this resource is defined.

stability

stable

Methods

_enableCrossEnvironment

  • _enableCrossEnvironment(): void
  • Called when this resource is referenced across environments (account/region) to order to request that a physical name will be generated for this resource during synthesis, so the resource can be referenced through it's absolute name/arn.

    internal

    Returns void

addPermission

  • addPermission(id: string, permission: LayerVersionPermission): void
  • Add permission for this layer version to specific entities.

    Usage within the same account where the layer is defined is always allowed and does not require calling this method. Note that the principal that creates the Lambda function using the layer (for example, a CloudFormation changeset execution role) also needs to have the lambda:GetLayerVersion permission on the layer version.

    stability

    stable

    Parameters

    • id: string
    • permission: LayerVersionPermission

    Returns void

applyRemovalPolicy

  • applyRemovalPolicy(policy: RemovalPolicy): void
  • Apply the given removal policy to this resource.

    The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.

    The resource can be deleted (RemovalPolicy.DELETE), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN).

    stability

    stable

    Parameters

    • policy: RemovalPolicy

    Returns void

Protected generatePhysicalName

  • generatePhysicalName(): string
  • stability

    stable

    Returns string

Protected getResourceArnAttribute

  • getResourceArnAttribute(arnAttr: string, arnComponents: ArnComponents): string
  • Returns an environment-sensitive token that should be used for the resource's "ARN" attribute (e.g. bucket.bucketArn).

    Normally, this token will resolve to arnAttr, but if the resource is referenced across environments, arnComponents will be used to synthesize a concrete ARN with the resource's physical name. Make sure to reference this.physicalName in arnComponents.

    stability

    stable

    Parameters

    • arnAttr: string

      The CFN attribute which resolves to the ARN of the resource.

    • arnComponents: ArnComponents

      The format of the ARN of this resource.

    Returns string

Protected getResourceNameAttribute

  • getResourceNameAttribute(nameAttr: string): string
  • Returns an environment-sensitive token that should be used for the resource's "name" attribute (e.g. bucket.bucketName).

    Normally, this token will resolve to nameAttr, but if the resource is referenced across environments, it will be resolved to this.physicalName, which will be a concrete name.

    stability

    stable

    Parameters

    • nameAttr: string

      The CFN attribute which resolves to the resource's name.

    Returns string

Protected onPrepare

  • onPrepare(): void
  • Perform final modifications before synthesis.

    This method can be implemented by derived constructs in order to perform final changes before synthesis. prepare() will be called after child constructs have been prepared.

    This is an advanced framework feature. Only use this if you understand the implications.

    stability

    stable

    Returns void

Protected onSynthesize

  • onSynthesize(session: ISynthesisSession): void
  • Allows this construct to emit artifacts into the cloud assembly during synthesis.

    This method is usually implemented by framework-level constructs such as Stack and Asset as they participate in synthesizing the cloud assembly.

    stability

    stable

    Parameters

    • session: ISynthesisSession

      The synthesis session.

    Returns void

Protected onValidate

  • onValidate(): string[]
  • Validate the current construct.

    This method can be implemented by derived constructs in order to perform validation logic. It is called on all constructs before synthesis.

    stability

    stable

    Returns string[]

    An array of validation error messages, or an empty array if the construct is valid.

Protected prepare

  • prepare(): void
  • Perform final modifications before synthesis.

    This method can be implemented by derived constructs in order to perform final changes before synthesis. prepare() will be called after child constructs have been prepared.

    This is an advanced framework feature. Only use this if you understand the implications.

    stability

    stable

    Returns void

Protected synthesize

  • synthesize(session: ISynthesisSession): void
  • Allows this construct to emit artifacts into the cloud assembly during synthesis.

    This method is usually implemented by framework-level constructs such as Stack and Asset as they participate in synthesizing the cloud assembly.

    stability

    stable

    Parameters

    • session: ISynthesisSession

      The synthesis session.

    Returns void

toString

  • toString(): string
  • Returns a string representation of this construct.

    stability

    stable

    Returns string

Protected validate

  • validate(): string[]
  • Validate the current construct.

    This method can be implemented by derived constructs in order to perform validation logic. It is called on all constructs before synthesis.

    stability

    stable

    Returns string[]

    An array of validation error messages, or an empty array if the construct is valid.

Static fromLayerVersionArn

  • fromLayerVersionArn(scope: Construct, id: string, layerVersionArn: string): ILayerVersion
  • Imports a layer version by ARN.

    Assumes it is compatible with all Lambda runtimes.

    stability

    stable

    Parameters

    • scope: Construct
    • id: string
    • layerVersionArn: string

    Returns ILayerVersion

Static fromLayerVersionAttributes

  • fromLayerVersionAttributes(scope: Construct, id: string, attrs: LayerVersionAttributes): ILayerVersion
  • Imports a Layer that has been defined externally.

    stability

    stable

    Parameters

    • scope: Construct

      the parent Construct that will use the imported layer.

    • id: string

      the id of the imported layer in the construct tree.

    • attrs: LayerVersionAttributes

      the properties of the imported layer.

    Returns ILayerVersion

Static isConstruct

  • isConstruct(x: any): x is Construct
  • Return whether the given object is a Construct.

    stability

    stable

    Parameters

    • x: any

    Returns x is Construct

Static isResource

  • isResource(construct: IConstruct): construct is CfnResource
  • Check whether the given construct is a Resource.

    stability

    stable

    Parameters

    • construct: IConstruct

    Returns construct is CfnResource

Generated using TypeDoc