aws:asset:path is a type of metadata which can be configured in CloudFromation for a Lambda function. Below are my notes on how to use it, specifically for use with AWS SAM directly with standard CloudFormation.

Use aws:asset:path to specify the location of code for Lambda Function in CloudFormation for use with SAM.

Using SAM with a plain CloudFormation template, not a SAM template, works just fine. In order to use AWS SAM though you must provide a Metadata section for the lambda function at the same level as Type: and Properties:. This metadata section will give SAM what it needs to run your function locally. You’ll need to specify a aws:asset:path and an aws:asset:property and the SAM will have what it needs to build and run locally.

aws:asset:property must be the directory which contains the file which Handler is looking for.

# app.y is in C:\my\path\to\lambda\code
    Type: AWS::Lambda::Function
        Handler: app.lambda_handler
        aws:asset:path: "C:\\my\\path\\to\\lambda\\code"
        aws:asset:property: "Code"

Use a relative path for code location

It’s quite inconvenient to use a hard coded path to the location of the code. Developers will put code in different location and will likely be using different operation systems.

For the Metadata aws:asset:path of your lambda function, pass in a relative path as shown below. It’s quite simple really.

# If your code is a level deeper than your template.yaml    
        aws:asset:path: ".\\dirWithMyCode"
        aws:asset:property: "Code"

# If your code is a the same level as your template.yaml
        aws:asset:path: ".\\dirWithMyCode"
        aws:asset:property: "Code"

AWS doesn’t have much in the way of docs for this. I learned about it using SAM templates produced by CDK synth, but you can use this just fine by adding it to your own CFN templates without using the CDK. These docs are specifically for the CDK, but provide some useful info, particularly at the very bottom.

Point lambda aws:asset:path to source code instead of .cdk.staging: Useful when you are using the CDK only.

Use SAM with the AWS CDK

If you’re trying to use AWS SAM to develop lambda functions with the AWS CDK / CloudFormation exported from the CDK. I have a guide on that. Click the link and give it a read please.