ReferenceType metadata for parameters in AWS CloudFormation templates

Cloud administrators can define ServiceNow (SNC) metadata using AWS CloudFormation templates. Each parameter with ReferenceType metadata references a ServiceNow Resource Type table entry. On the catalog ordering page, the variable type for these parameters becomes a Reference. This feature makes AWS stack catalog ordering less error-prone.

This allows the template author to tie together parameters within an existing ServiceNow table. For example, if you are using Region as one of the parameters in your CloudFormation templates and you want to tie the Region field of your template to an existing AWS region table, you can achieve this using ReferenceType metadata.

The following is an example to define ReferenceType metadata for the parameter KeyName in an AWS CloudFormation template.

"Parameters": {
        "KeyName": {
        "Description": "Describe key name",
        "Type": "AWS::EC2::KeyPair::KeyName",
        "ConstraintDescription": "must be the name of an existing EC2 KeyPair.",
        "MinLength": 8,
        "MaxLength": 35,
        "AllowedPattern": "[0-9a-zA-Z]+"}
        },
        "Metadata": {
           "AWS::CloudFormation::Designer": {
                "3088fe53-c967-4b4b-8d0d-fcdfb5ea7a23": {
                    "size": {
                    "width": 60,
                    "height": 60 }, 
           "SNC::Parameter::Metadata": {
                 "KeyName":{
                    "ReferenceType":"AWS::EC2::KeyPair::KeyName"
                 }
            }
         }  
       }
      

To define a password parameter, use the NoEcho parameter. In this example, if the user sets the NoEcho parameter to true, the ReferenceType is ignored and the corresponding catalog variable has the Reenter text box on the catalog order page.

When the admin creates ReferenceType metadata, the following table is created to associate a reference for the given type.

Table 1. Template Parameter Type
Name Description
Name Matches the ReferenceType in the template metadata. Example: user name.
Resource Type Reference to cloud resource type table pointing to appropriate resource type record. Example: region.
Table Field Populated based on template parameter in the resource type table. Example: size.
Resource Table Populates the name of the table derived from the Resource Type field. The cloud user does not see this field: if the specified Resource Type does not exist in the cloud resource type, then the cloud user must explicitly fill in this field on the order form. Example: user name, region, size.