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.
Amazon SQSโ
SQS queuesโ
The following example demonstrates how to ingest your AWS SQS queues to Port.
You can use the following Port blueprint definitions and integration configuration:
SQS queue blueprint (Click to expand)
{
"identifier": "sqsQueue",
"title": "SQS Queue",
"icon": "AWS",
"description": "This blueprint represents an AWS SQS queue in our software catalog",
"schema": {
"properties": {
"queueName": {
"type": "string",
"title": "Queue Name"
},
"queueUrl": {
"type": "string",
"title": "Queue URL",
"format": "url"
},
"queueArn": {
"type": "string",
"title": "Queue ARN"
},
"fifoQueue": {
"type": "boolean",
"title": "FIFO Queue"
},
"visibilityTimeout": {
"type": "number",
"title": "Visibility Timeout (seconds)"
}
},
"required": []
},
"mirrorProperties": {},
"calculationProperties": {},
"aggregationProperties": {},
"relations": {
"awsAccount": {
"title": "AWS Account",
"target": "awsAccount",
"required": true,
"many": false
}
}
}
SQS queue mapping configuration (Click to expand)
resources:
- kind: AWS::SQS::Queue
selector:
query: 'true'
port:
entity:
mappings:
identifier: .QueueUrl
title: .QueueName
blueprint: sqsQueue
properties:
queueName: .QueueName
queueUrl: .QueueUrl
queueArn: .QueueArn
fifoQueue: .FifoQueue
visibilityTimeout: .VisibilityTimeout
relations:
awsAccount: .awsAccount
You can reference any of the following SQS queue properties in your mapping configuration:
SQS queue properties (Click to expand)
Property | Type | Description | Action Required |
---|---|---|---|
QueueName | string | The name of the SQS queue | Default |
QueueUrl | string | The URL of the SQS queue | Default |
QueueArn | string | The Amazon Resource Name (ARN) of the SQS queue | Default |
ApproximateNumberOfMessages | number | The approximate number of messages available for retrieval from the queue | Default |
ApproximateNumberOfMessagesNotVisible | number | The approximate number of messages in the queue that are delayed and not available for reading immediately | Default |
ApproximateNumberOfMessagesDelayed | number | The approximate number of messages in the queue that are delayed and not available for reading immediately | Default |
CreatedTimestamp | string | The time when the queue was created (Unix timestamp) | Default |
LastModifiedTimestamp | string | The time when the queue was last changed (Unix timestamp) | Default |
VisibilityTimeout | number | The visibility timeout for the queue in seconds | Default |
MaximumMessageSize | number | The limit of how many bytes a message can contain before Amazon SQS rejects it | Default |
MessageRetentionPeriod | number | The number of seconds for which Amazon SQS retains a message | Default |
DelaySeconds | number | The default delay for a message in the queue in seconds | Default |
ReceiveMessageWaitTimeSeconds | number | The length of time, in seconds, for which a ReceiveMessage action waits for a message to arrive | Default |
Policy | string | The queue's policy | Default |
RedrivePolicy | string | The string that includes the parameters for the dead-letter queue functionality | Default |
RedriveAllowPolicy | string | The string that includes the parameters for the permissions for the dead-letter queue redrive permission | Default |
KmsMasterKeyId | string | The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK | Default |
KmsDataKeyReusePeriodSeconds | number | The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again | Default |
SqsManagedSseEnabled | boolean | Returns true if the queue is using SSE-SQS encryption using SQS owned encryption keys | Default |
FifoQueue | boolean | Returns true if the queue is a FIFO queue | Default |
ContentBasedDeduplication | boolean | Returns true if content-based deduplication is enabled for the queue | Default |
DeduplicationScope | string | Specifies whether message deduplication occurs at the message group or queue level | Default |
FifoThroughputLimit | string | Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group | Default |
Tags | object | The tags that have been assigned to the queue | GetQueueTagsAction |
For more details about SQS queue properties, refer to the AWS SQS API documentation.
We're actively working on adding support for additional AWS resource types to provide comprehensive coverage of your AWS infrastructure.