@aws/aws-config-catalog-module-for-backstage

中文文档
0.4.0发布于 2026/08/06Apache-2.0TypeScriptCommonJS构建来源已验证近 30 天下载 1.8万

目录插件的aws-config后端模块.

中文使用文档
文档目录6 节
  1. 安装
  2. 配置
  3. 考虑因素
  4. JSONata 表达式
  5. 使用大小写
  6. EKS 分类群集定位器

后台的 AWS 配置目录插件

这是后台的 AWS 配置目录插件 。 io 用于将 AWS 资源信息输入后台目录.

特征 :

  1. 从 AWS 配置自动添加 AWS 资源
  2. 使用增量摄取来有效摄取

说明: 可以轻易地将这个实体供应商配置成将大量实体摄入后台目录的方式。 请审查 考虑因素 下节.

说明: 如果您尚未使用 AWS 配置, 需要注意的是, 您启用此配置将产生成本 。 请审查定价信息, 然后再允许在您的 AWS 组织内使用 .

安装

本指南假设你熟悉将军 开始 并假设您已有后台应用程序.

在您的后台应用程序中安装后端软件包 :

yarn workspace backend add @backstage/plugin-catalog-backend-module-incremental-ingestion @aws/aws-config-catalog-module-for-backstage

将脚手架模块添加到 packages/backend/src/index.ts数字 :

const backend = createBackend();
// ...
backend.add(
  import('@backstage/plugin-catalog-backend-module-incremental-ingestion'),
);
backend.add(import('@aws/aws-config-catalog-module-for-backstage'));
// ...
backend.start();

配置

将实体提供者添加到后台应用程序配置 :

providers:
  awsConfig:
    default: # Name of the provider
      accountId: # [OPTIONAL] AWS account ID to use to access AWS Config API
      region: # [OPTIONAL] AWS region to use to access AWS Config API
      aggregator: # [OPTIONAL] The name of the AWS Config aggregator
      hashEntityNames: # [OPTIONAL] Generated entity names will always be hashes of the ARN
      filters: # Filter the resources queried from AWS Config API
        tags: # [OPTIONAL] Match by tags on the AWS resources
          - key: 'component' # Only retrieve resources that have a 'component' tag
          - key: environment # Only retrieve resources that have a 'environment' tag with value 'prod'
            value: prod
        resourceTypes: # [REQUIRED] Filter by AWS resource type
          - AWS::ECS::Cluster
          - AWS::ECS::Service
          - AWS::DynamoDB::Table
          - AWS::RDS::DBCluster
          - AWS::Lambda::Function
          - AWS::ElasticLoadBalancingV2::LoadBalancer
          - AWS::ApiGatewayV2::Api
          - AWS::S3::Bucket
      transform: # [OPTIONAL] Apply transformations to the emitted entity
        fields: # Modify specific fields
          name: # Customize the name field generated (see note below)
            expression: $join([$resource.resourceName, $resource.accountId], '-')
          annotations: # Add to metadata.annotations
            accountId:
              expression: $resource.accountId # Add an annotation with the AWS account ID using JSONata expression
          spec:
            owner:
              tag: owner # Set 'spec.owner' to the value of the 'owner' tag on the AWS resource
            component:
              tag: component # Create a 'dependencyOf' relationshop based on the 'component' tag
            system:
              value: my-system # Set 'spec.system' to a hard-coded value of 'my-system'
      options: # [OPTIONAL] Configure details of the provider behavior
        incremental:
          restLength: { hours: 6 } # Wait 6 hours between each ingestion cycle

由上述配置创建的实体将看起来像:

apiVersion: backstage.io/v1alpha1
kind: Resource
metadata:
  annotations:
    aws.amazon.com/arn: arn:aws:ecs:us-west-2:1234567890:service/my-cluster/my-app
    aws.amazon.com/name: my-app
    aws.amazon.com/region: us-west-2
    aws.amazon.com/resource-id: arn:aws:ecs:us-west-2:1234567890:service/my-cluster/my-app
    aws.amazon.com/resource-type: AWS::ECS::Service
  name: my-app
  description: AWS Config Resource AWS::ECS::Service my-app
spec:
  owner: my-team
  type: ecs-service
  system: my-system

注: metadata.name 字段必须在您的后台实例中独有,否则实体会相互覆盖。 如果您的 AWS 资源命名已经是独一无二的, 那么您没有要采取的行动 。 如果您有AWS资源, 可能会有相冲突的名称, 那么您需要使用 transform.fields.name 转换配置值 metadata.name 字段为每个实体的独有之处.

考虑因素

它建议使用可用于摄取后台目录中必需的最低实体的配置. AWS Config,特别是在较大的组织中,可以追踪大量AWS资源,对摄入机制以及存储过的用户编目经验都有负面影响.

一般性建议如下:

  1. 使用 resourceTypes 字段以限制想要的 AWS 服务。 如果需要,从1或2个资源类型开始,并逐渐增加更多,以评估对后台目录大小的影响.
  2. 将摄入限制在单一的"环境"中,如中转或生产.
  3. 根据将摄入的资源数量适当配置摄入时间表.

JSONata 表达式

供应商改变实体的方法之一是使用 杰索纳塔 通过 expressions 字段。 这是根据AWS配置资源有效载荷中的任何字段对排放实体的字段进行转换的灵活方法.

AWS配置资源有效载荷可通过 $resource 变量.

以下是一个简单的示例, 用资源账户 ID 设置注释 :

transform:
  fields:
    annotations:
      accountId:
        expression: $resource.accountId

以下是一个更为复杂的例子,它只当资源是RDS DB集群时,才用 RDS 引擎版本设置注释:

transform:
  fields:
    annotations:
      engineVersion:
        expression: $resource.resourceType = "AWS::RDS::DBCluster" ? $resource.configuration.engineVersion

表达式必须返回 a string。 。 。 .

使用大小写

本节载有一些超出简单资源摄入范围的具体使用案例的例子.

EKS 分类群集定位器

后台 库伯涅特集群定位器 来自后台目录的Kubernetes集群信息,用于为Kubernetes插件提供动力. 这是一个比后台配置中配置集群更灵活的机制.

此实体提供者可用于生成 Resource 使用字段转换来兼容此插件的实体 :

providers:
  awsConfig:
    eksClusters:
      filters:
        tags: [...]
        resourceTypes:
          - AWS::EKS::Cluster
      transform:
        fields:
          annotations:
            'amazonaws.com/account-id':
              expression: $resource.accountId
            'amazonaws.com/arn':
              expression: $resource.arn
            'kubernetes.io/api-server':
              expression: $resource.configuration.Endpoint
            'kubernetes.io/api-server-certificate-authority':
              expression: $resource.configuration.CertificateAuthorityData
            'kubernetes.io/x-k8s-aws-id':
              expression: $resource.resourceName
            'kubernetes.io/auth-provider':
              value: aws
          spec:
            owner:
              tag: owner
            component:
              tag: component
            type:
              value: kubernetes-cluster

适当使用标记过滤集群 .

版本与发布记录

@aws/aws-config-catalog-module-for-backstage 共发布 16 个版本,首次发布于 2024/11/30;过去 12 个月发布了 3 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.0latest2026/08/063 个月前
0.3.32026/04/236 个月前
0.3.22025/11/1411 个月前
0.3.12025/11/081 年前
0.3.02025/09/191.1 年前
0.2.02025/08/211.2 年前

关于 @aws/aws-config-catalog-module-for-backstage 的常见问题

@aws/aws-config-catalog-module-for-backstage 是什么?

目录插件的aws-config后端模块.

如何安装 @aws/aws-config-catalog-module-for-backstage?

在项目目录运行 npm install @aws/aws-config-catalog-module-for-backstage,或使用 pnpm add / yarn add / bun add。

@aws/aws-config-catalog-module-for-backstage 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aws/aws-config-catalog-module-for-backstage 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@aws/aws-config-catalog-module-for-backstage 可以商用吗?

@aws/aws-config-catalog-module-for-backstage 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aws/aws-config-catalog-module-for-backstage 的下载量有多少?

根据 npm 官方下载统计,@aws/aws-config-catalog-module-for-backstage 在 2026/10/08 – 2026/11/06 这 30 天内被下载 17,573 次,日均约 586 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aws/aws-config-catalog-module-for-backstage 还在维护吗?

最新版本 0.4.0 发布于 2026/08/06(3 个月前);至今共发布 16 个版本,其中过去 12 个月发布了 3 个;首次发布于 2024/11/30。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。