Defining Resources
Select the panel named LambdaBackedApiGatewayApi. Your screen should like something like this:

This infrastructure panel (note the cyan bar to the right of its name in the panel browser) defines two resources. These nodes are highlighted (by selecting them) here:

The two highlighted nodes are called resource definition nodes. They use familiar AWS icons to indicate the AWS service they are associated with. The orange node defines a Lambda function, and the red node defines an IAM role.
The port structure of a resource definition node is as follows:
| Name | Type | Description | Optional |
|---|---|---|---|
ID |
(cfnId) |
user or logical id |
no |
Specification |
(cfnSpec) |
CloudFormation template fragment |
yes |
| Name | Type | Description | Optional |
|---|---|---|---|
logicalID |
(cfnIdLogical) |
logical id for the resource |
no |
Every resource defined in a project has a primary definition, and may have secondary definitions as well. The primary definition receives the user id of the resource – the name by which the resource is known to the user – in its first parameter port. In this case, the two user ids are LambdaBackedApiGatewayApiRole and LambdaBackedApiGatewayApiMain. The second input parameter to the resource definition node specifies the resource using CloudFormation syntax. You can double click on the green CFN node labeled "{" in the upper right corner of the diagram to see the CloudFormation template fragment inside it:

Sometimes the logical id of one resource is used in the CloudFormation template fragment for another resource. That is the case here; the logical id of the IAM role (bottom output port of the red IAM role node) is delivered as a parameter to the CFN node that is, in turn, a parameter to the Lambda function. If you double click on this CFN node, you will see a $0 in the text – that is replaced by the value of the parameter to the CFN node, which in this case is the logical id of the IAM role.
