Examples
This page contains practical examples for mapping AWS resources to Port using AWS Hosted by Port.
These examples demonstrate how to create blueprints and configure mappings to ingest your AWS infrastructure into your Port software catalog.
AWS Accountโ
AccountInfoโ
The following example demonstrates how to ingest your AWS Account information to Port.
You can use the following Port blueprint definitions and integration configuration:
AccountInfo blueprint (Click to expand)
{
  "identifier": "awsAccount",
  "description": "This blueprint represents an AWS Account in our software catalog",
  "title": "Account",
  "icon": "AWS",
  "schema": {
    "properties": {},
    "required": []
  },
  "mirrorProperties": {},
  "calculationProperties": {},
  "aggregationProperties": {},
  "relations": {}
}
AccountInfo mapping configuration (Click to expand)
resources:
  - kind: AccountInfo
    selector:
      query: 'true'
    port:
      entity:
        mappings:
          identifier: .Properties.Id
          title: .Properties.Name
          blueprint: '"awsAccount"'
AWS Organizationsโ
Organizations Accountsโ
The following example demonstrates how to ingest your AWS Organizations Accounts to Port.
You can use the following Port blueprint definitions and integration configuration:
Organizations Account blueprint (Click to expand)
{
  "identifier": "awsOrganizationAccount",
  "description": "This blueprint represents an AWS Organizations Account in our software catalog",
  "title": "Organizations Account",
  "icon": "AWS",
  "schema": {
    "properties": {
      "arn": {
        "type": "string",
        "title": "ARN"
      },
      "email": {
        "type": "string",
        "title": "Email"
      },
      "status": {
        "type": "string",
        "title": "Status"
      },
      "joinedTimestamp": {
        "type": "string",
        "title": "Joined Timestamp"
      },
      "joinedMethod": {
        "type": "string",
        "title": "Joined Method"
      }
    },
    "required": []
  },
  "mirrorProperties": {},
  "calculationProperties": {},
  "aggregationProperties": {},
  "relations": {}
}
Organizations Account mapping configuration (Click to expand)
resources:
  - kind: AWS::Organizations::Account
    selector:
      query: 'true'
    port:
      entity:
        mappings:
          identifier: .Properties.Id
          title: .Properties.AccountName
          blueprint: '"awsOrganizationAccount"'
          properties:
            arn: .Properties.Arn
            email: .Properties.Email
            status: .Properties.Status
            joinedTimestamp: .Properties.JoinedTimestamp
            joinedMethod: .Properties.JoinedMethod
You can reference any of the following Organizations Account properties in your mapping configuration:
Organizations Account properties (Click to expand)
| Property | JQ Path | Type | Action Required | 
|---|---|---|---|
| Id | .Properties.Id | string | ListAccountsAction (default) | 
| AccountName | .Properties.AccountName | string | ListAccountsAction (default) | 
| Arn | .Properties.Arn | string | ListAccountsAction (default) | 
| .Properties.Email | string | ListAccountsAction (default) | |
| Status | .Properties.Status | string | ListAccountsAction (default) | 
| JoinedTimestamp | .Properties.JoinedTimestamp | string | ListAccountsAction (default) | 
| JoinedMethod | .Properties.JoinedMethod | string | ListAccountsAction (default) | 
| Tags | .Properties.Tags | array | ListTagsForResourceAction (optional) | 
| Parents | .Properties.Parents | array | ListParentsAction (optional) | 
For more details about Organizations Account properties, refer to the AWS Organizations API documentation.
Amazon S3โ
S3 bucketsโ
The following example demonstrates how to ingest your AWS S3 buckets to Port.
You can use the following Port blueprint definitions and integration configuration:
S3 bucket blueprint (Click to expand)
{
  "identifier": "s3Bucket",
  "description": "This blueprint represents an AWS S3 bucket in our software catalog",
  "title": "S3 bucket",
  "icon": "AWS",
  "schema": {
    "properties": {
      "arn": {
        "type": "string",
        "title": "ARN"
      },
      "region": {
        "type": "string",
        "title": "Region"
      },
      "creationDate": {
        "type": "string",
        "format": "date-time",
        "title": "Creation date"
      },
      "tags": {
        "type": "array",
        "title": "Tags",
        "items": {
          "type": "object",
          "properties": {
            "Key": {
              "type": "string"
            },
            "Value": {
              "type": "string"
            }
          }
        }
      }
    },
    "required": []
  },
  "mirrorProperties": {},
  "calculationProperties": {},
  "aggregationProperties": {},
  "relations": {
    "account": {
      "title": "Account",
      "target": "awsAccount",
      "required": true,
      "many": false
    }
  }
}
S3 bucket mapping configuration (Click to expand)
resources:
  - kind: AWS::S3::Bucket
    selector:
      query: 'true'
      includeActions:
        # Optional: Include up to 3 additional actions for more properties
        # Choose based on which properties you need most
        # - GetBucketEncryptionAction
        # - GetBucketPublicAccessBlockAction
        # - GetBucketOwnershipControlsAction
    port:
      entity:
        mappings:
          identifier: .Properties.Arn
          title: .Properties.BucketName
          blueprint: '"s3Bucket"'
          properties:
            arn: .Properties.Arn
            region: .Properties.LocationConstraint
            creationDate: .Properties.CreationDate
            tags: .Properties.Tags
          relations:
            account: .__ExtraContext.AccountId
You can reference any of the following S3 bucket properties in your mapping configuration:
S3 bucket properties (Click to expand)
| Property | JQ Path | Type | Action Required | 
|---|---|---|---|
| Bucket Name | .Properties.BucketName | string | ListBucketsAction (default) | 
| ARN | .Properties.Arn | string | ListBucketsAction (default) | 
| Creation Date | .Properties.CreationDate | datetime | ListBucketsAction (default) | 
| Region | .Properties.LocationConstraint | string | GetBucketLocationAction (default) | 
| Tags | .Properties.Tags | array | GetBucketTaggingAction (default) | 
| Bucket Encryption | .Properties.BucketEncryption | object | GetBucketEncryptionAction (optional) | 
| Public Access Block Configuration | .Properties.PublicAccessBlockConfiguration | object | GetBucketPublicAccessBlockAction (optional) | 
| Ownership Controls | .Properties.OwnershipControls | object | GetBucketOwnershipControlsAction (optional) | 
For more details about S3 bucket properties, refer to the AWS S3 API documentation.
Amazon ECSโ
ECS clustersโ
The following example demonstrates how to ingest your AWS ECS clusters to Port.
You can use the following Port blueprint definitions and integration configuration:
ECS cluster blueprint (Click to expand)
{
  "identifier": "ecsCluster",
  "description": "This blueprint represents an AWS ECS cluster in our software catalog",
  "title": "ECS cluster",
  "icon": "AWS",
  "schema": {
    "properties": {
      "status": {
        "type": "string",
        "title": "Status"
      },
      "runningTasksCount": {
        "type": "number",
        "title": "Running tasks count"
      },
      "activeServicesCount": {
        "type": "number",
        "title": "Active services count"
      },
      "pendingTasksCount": {
        "type": "number",
        "title": "Pending tasks count"
      },
      "registeredContainerInstancesCount": {
        "type": "number",
        "title": "Registered container instances count"
      },
      "capacityProviders": {
        "type": "array",
        "title": "Capacity providers"
      },
      "clusterArn": {
        "type": "string",
        "title": "Cluster ARN"
      },
      "tags": {
        "type": "array",
        "title": "Tags",
        "items": {
          "type": "object",
          "properties": {
            "Key": {
              "type": "string"
            },
            "Value": {
              "type": "string"
            }
          }
        }
      }
    },
    "required": []
  },
  "mirrorProperties": {},
  "calculationProperties": {},
  "aggregationProperties": {},
  "relations": {
    "account": {
      "title": "Account",
      "target": "awsAccount",
      "required": true,
      "many": false
    }
  }
}
ECS cluster mapping configuration (Click to expand)
resources:
  - kind: AWS::ECS::Cluster
    selector:
      query: 'true'
      # includeActions: No optional actions available for ECS clusters
      # All properties are included by default via DescribeClustersAction
    port:
      entity:
        mappings:
          identifier: .Properties.ClusterArn
          title: .Properties.ClusterName
          blueprint: '"ecsCluster"'
          properties:
            status: .Properties.Status
            runningTasksCount: .Properties.RunningTasksCount
            activeServicesCount: .Properties.ActiveServicesCount
            pendingTasksCount: .Properties.PendingTasksCount
            registeredContainerInstancesCount: .Properties.RegisteredContainerInstancesCount
            capacityProviders: .Properties.CapacityProviders
            clusterArn: .Properties.ClusterArn
            tags: .Properties.Tags
          relations:
            account: .__ExtraContext.AccountId
You can reference any of the following ECS cluster properties in your mapping configuration:
ECS cluster properties (Click to expand)
| Property | JQ Path | Type | Action Required | 
|---|---|---|---|
| Cluster Name | .Properties.ClusterName | string | DescribeClustersAction (default) | 
| Cluster ARN | .Properties.ClusterArn | string | DescribeClustersAction (default) | 
| Status | .Properties.Status | string | DescribeClustersAction (default) | 
| Capacity Providers | .Properties.CapacityProviders | array | DescribeClustersAction (default) | 
| Tags | .Properties.Tags | array | DescribeClustersAction (default) | 
| Cluster Settings | .Properties.ClusterSettings | array | DescribeClustersAction (default) | 
| Configuration | .Properties.Configuration | object | DescribeClustersAction (default) | 
| Default Capacity Provider Strategy | .Properties.DefaultCapacityProviderStrategy | array | DescribeClustersAction (default) | 
| Service Connect Defaults | .Properties.ServiceConnectDefaults | object | DescribeClustersAction (default) | 
| Attachments | .Properties.Attachments | array | DescribeClustersAction (default) | 
| Attachments Status | .Properties.AttachmentsStatus | string | DescribeClustersAction (default) | 
| Statistics | .Properties.Statistics | array | DescribeClustersAction (default) | 
| Active Services Count | .Properties.ActiveServicesCount | number | DescribeClustersAction (default) | 
| Pending Tasks Count | .Properties.PendingTasksCount | number | DescribeClustersAction (default) | 
| Running Tasks Count | .Properties.RunningTasksCount | number | DescribeClustersAction (default) | 
| Registered Container Instances Count | .Properties.RegisteredContainerInstancesCount | number | DescribeClustersAction (default) | 
For more details about ECS cluster properties, refer to the AWS ECS API documentation.
Amazon EC2โ
EC2 instancesโ
The following example demonstrates how to ingest your AWS EC2 instances to Port.
You can use the following Port blueprint definitions and integration configuration:
EC2 instance blueprint (Click to expand)
{
  "identifier": "ec2Instance",
  "description": "This blueprint represents an AWS EC2 instance in our software catalog",
  "title": "EC2 instance",
  "icon": "AWS",
  "schema": {
    "properties": {
      "instanceArn": {
        "type": "string",
        "title": "Instance ARN"
      },
      "instanceId": {
        "type": "string",
        "title": "Instance ID"
      },
      "instanceType": {
        "type": "string",
        "title": "Instance type"
      },
      "availabilityZone": {
        "type": "string",
        "title": "Availability zone"
      },
      "tags": {
        "type": "array",
        "title": "Tags",
        "items": {
          "type": "object",
          "properties": {
            "Key": {
              "type": "string"
            },
            "Value": {
              "type": "string"
            }
          }
        }
      }
    },
    "required": []
  },
  "mirrorProperties": {},
  "calculationProperties": {},
  "aggregationProperties": {},
  "relations": {
    "account": {
      "title": "Account",
      "target": "awsAccount",
      "required": true,
      "many": false
    }
  }
}
EC2 instance mapping configuration (Click to expand)
resources:
  - kind: AWS::EC2::Instance
    selector:
      query: 'true'
      includeActions:
        # Optional: Include up to 3 additional actions for more properties
        # Choose based on which properties you need most
        # - GetInstanceStatusAction
    port:
      entity:
        mappings:
          identifier: .Properties.InstanceId
          title: .Properties.InstanceId
          blueprint: '"ec2Instance"'
          properties:
            instanceArn: .Properties.InstanceArn
            instanceId: .Properties.InstanceId
            instanceType: .Properties.InstanceType
            availabilityZone: .Properties.AvailabilityZone
            tags: .Properties.Tags
          relations:
            account: .__ExtraContext.AccountId
You can reference any of the following EC2 instance properties in your mapping configuration:
EC2 instance properties (Click to expand)
| Property | JQ Path | Type | Action Required | 
|---|---|---|---|
| Instance ARN | .Properties.InstanceArn | string | DescribeInstancesAction (default) | 
| Instance ID | .Properties.InstanceId | string | DescribeInstancesAction (default) | 
| Instance Type | .Properties.InstanceType | string | DescribeInstancesAction (default) | 
| Availability Zone | .Properties.AvailabilityZone | string | DescribeInstancesAction (default) | 
| Tags | .Properties.Tags | array | DescribeInstancesAction (default) | 
| AMI Launch Index | .Properties.AmiLaunchIndex | number | DescribeInstancesAction (default) | 
| Architecture | .Properties.Architecture | string | DescribeInstancesAction (default) | 
| Block Device Mappings | .Properties.BlockDeviceMappings | array | DescribeInstancesAction (default) | 
| Boot Mode | .Properties.BootMode | string | DescribeInstancesAction (default) | 
| Capacity Reservation Specification | .Properties.CapacityReservationSpecification | object | DescribeInstancesAction (default) | 
| Client Token | .Properties.ClientToken | string | DescribeInstancesAction (default) | 
| CPU Options | .Properties.CpuOptions | object | DescribeInstancesAction (default) | 
| Current Instance Boot Mode | .Properties.CurrentInstanceBootMode | string | DescribeInstancesAction (default) | 
| EBS Optimized | .Properties.EbsOptimized | boolean | DescribeInstancesAction (default) | 
| Enclave Options | .Properties.EnclaveOptions | object | DescribeInstancesAction (default) | 
| ENA Support | .Properties.EnaSupport | boolean | DescribeInstancesAction (default) | 
| Events | .Properties.Events | array | DescribeInstancesAction (default) | 
| Hibernation Options | .Properties.HibernationOptions | object | DescribeInstancesAction (default) | 
| Hypervisor | .Properties.Hypervisor | string | DescribeInstancesAction (default) | 
| Image ID | .Properties.ImageId | string | DescribeInstancesAction (default) | 
| Instance Status | .Properties.InstanceStatus | object | GetInstanceStatusAction (optional) | 
| Instance State | .Properties.InstanceState | object | DescribeInstancesAction (default) | 
| Key Name | .Properties.KeyName | string | DescribeInstancesAction (default) | 
| Launch Time | .Properties.LaunchTime | datetime | DescribeInstancesAction (default) | 
| Maintenance Options | .Properties.MaintenanceOptions | object | DescribeInstancesAction (default) | 
| Metadata Options | .Properties.MetadataOptions | object | DescribeInstancesAction (default) | 
| Monitoring | .Properties.Monitoring | object | DescribeInstancesAction (default) | 
| Network Interfaces | .Properties.NetworkInterfaces | array | DescribeInstancesAction (default) | 
| Network Performance Options | .Properties.NetworkPerformanceOptions | object | DescribeInstancesAction (default) | 
| Operator | .Properties.Operator | object | DescribeInstancesAction (default) | 
| Placement | .Properties.Placement | object | DescribeInstancesAction (default) | 
| Platform | .Properties.Platform | string | DescribeInstancesAction (default) | 
| Platform Details | .Properties.PlatformDetails | string | DescribeInstancesAction (default) | 
| Private DNS Name | .Properties.PrivateDnsName | string | DescribeInstancesAction (default) | 
| Private DNS Name Options | .Properties.PrivateDnsNameOptions | object | DescribeInstancesAction (default) | 
| Private IP Address | .Properties.PrivateIpAddress | string | DescribeInstancesAction (default) | 
| Product Codes | .Properties.ProductCodes | array | DescribeInstancesAction (default) | 
| Public DNS Name | .Properties.PublicDnsName | string | DescribeInstancesAction (default) | 
| Public IP Address | .Properties.PublicIpAddress | string | DescribeInstancesAction (default) | 
| Reason | .Properties.Reason | string | DescribeInstancesAction (default) | 
| Root Device Name | .Properties.RootDeviceName | string | DescribeInstancesAction (default) | 
| Root Device Type | .Properties.RootDeviceType | string | DescribeInstancesAction (default) | 
| Security Groups | .Properties.SecurityGroups | array | DescribeInstancesAction (default) | 
| Source Dest Check | .Properties.SourceDestCheck | boolean | DescribeInstancesAction (default) | 
| State | .Properties.State | object | DescribeInstancesAction (default) | 
| State Reason | .Properties.StateReason | object | DescribeInstancesAction (default) | 
| State Transition Reason | .Properties.StateTransitionReason | string | DescribeInstancesAction (default) | 
| Subnet ID | .Properties.SubnetId | string | DescribeInstancesAction (default) | 
| System Status | .Properties.SystemStatus | object | DescribeInstancesAction (default) | 
| Usage Operation | .Properties.UsageOperation | string | DescribeInstancesAction (default) | 
| Usage Operation Update Time | .Properties.UsageOperationUpdateTime | datetime | DescribeInstancesAction (default) | 
| Virtualization Type | .Properties.VirtualizationType | string | DescribeInstancesAction (default) | 
| VPC ID | .Properties.VpcId | string | DescribeInstancesAction (default) | 
For more details about EC2 instance properties, refer to the AWS EC2 API documentation.
We're actively working on adding support for additional AWS resource types to provide comprehensive coverage of your AWS infrastructure.