aws-toolkit-vscode icon indicating copy to clipboard operation
aws-toolkit-vscode copied to clipboard

SAM/CFN json schema: handle of intrinsic functions

Open jpinkney-aws opened this issue 2 years ago • 0 comments

Is your feature request related to a problem? Please describe. Right now when we use intrinsic functions in YAML we often get error messages such as: Incorrect type. Expected "string".

E.g.

AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Resources:
  sample:
    Type: AWS::Logs::MetricFilter
    Properties:
      LogGroupName: !Join [ ":", [ a, b, c ] ] <- Incorrect type. Expected "string"

from https://github.com/aws/aws-toolkit-vscode/issues/1974#issuecomment-922405837.

This issue can also be seen a couple times in: https://github.com/aws/aws-toolkit-vscode/issues/1978.

We should work on improving support for intrinsic functions (either in this extension or through VSCode-YAML) so that all YAML is successfully validated.

Describe the solution you'd like There's a couple quick ideas that might help:

  1. Work with VSCode-YAML to create an API to disable validation when it sees certain intrinsic types
  2. Work with VSCode-YAML to create an API to allow us to provide custom validation on intrinsic values. This means we would be able to validate whether or not an intrinsic function is behaving correctly and provide feedback to YAML writers if there might be an error

Describe alternatives you've considered See if we can somehow handle intrinsic functions better through this extension

Additional context Intrinsic function reference: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html

jpinkney-aws avatar Apr 26 '22 19:04 jpinkney-aws