Add-ons in the Resource Node

Updated 1 week ago by Totalcloud

You can access this feature in the Resource node right below the resource selection drop down menu.

What are Add-ons?

Add-ons allow you to enrich the resources data with additional qualities. You can use this enriched data in successor nodes, like Filter node, to selectively retain the resources required.

Example: Let's say you want to fetch instances that has port 22 open. When you fetch data of EC2 instances in the Resource node, it has attributes of instances alone. To filter instances that has an open port, you will need Security Groups associated with each instance. This requires us to fetch additional qualities of a resource, i.e. Add-ons. So, you will select Security Groups in the Add-ons for the fetched EC2 instances in the Resource node. The original data is enriched by the addon data.

Similarly, Volumes can be add-ons for EC2 instances, and Bucket Policies can be add-ons for S3 buckets.

The attributes of Add-ons are same as returned by the corresponding AWS API. So the data of describeSecurityGroups is available as output in addOns.Securitygroups when you select EC2 instances as resource and Security Groups as Add-ons in the Resource node.

Using an Add-On In a Resource Node

Here's how you can use add-ons in resource. We have used the above example for illustration purpose.

  1. Double click the Resource node to access the parameters input window.
  2. Select the relevant options as shown below.

  1. Click the Add-ons option. The Add-ons option is visible only when the Resource node is connected to the Filter node.
  1. Select the relevant API, for example, Security Groups.
  2. Click Apply.
  3. Click Save Node.
Output

Selecting "EC2 Instances" and "Security Groups" as Add-ons enriches the EC2 instances' data with corresponding Security Groups data. With Add-ons of Security Groups, we have all the attributes of the security group available for further use. Here is how a sample output looks when you select Add-ons, such as SGs of instances:

[
{
"AmiLaunchIndex": 0,
"ImageId": "ami-0c6b1d09930fac512",
"InstanceId": "i-0f8ae4d3e03c2f268",
"InstanceType": "t2.micro",

.......

"Placement": {
"AvailabilityZone": "us-east-1c",
.......

"addOns": {
"SecurityGroups": {
"data": [
{
"Description": "sg for lambda functions",
"GroupName": "webapp-engine",
"IpPermissions": [],
"OwnerId": "638806924683",
"GroupId": "sg-032a671c258604803",
"IpPermissionsEgress": [
{
"IpProtocol": "-1",
"IpRanges": [
{
"CidrIp": "0.0.0.0\/0"
}
],

"Ipv6Ranges": [ ],
"PrefixListIds": [ ],
"UserIdGroupPairs": [ ]
}
]

......

Click here to look at the actual output JSON.

Referencing an Add-On in Filter Parameters

Here's how you can reference an Add-on in the Filter node.

  1. Connect the Resource node to Filter node as show below.

  1. Double click the Filter node to open the Filter node settings. See the options in the following figure.
  1. The Add-Ons from Resource node can be referred as addons. "Quality" in the Filter node. You can refer the exact API (Quality) from the AWS API SDK Doc.
    1. Example 1: Key: addOns.IpPermissions.IpProtocol | Operator: == | Value: tcp
    2. Example 2: Key: addOns.IpPermissions.ToPort | Operator: == | Value: 80
  2. Click Save Node.


How did we do?