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.