@aws-cdk/aws-servicecatalogappregistry-alpha

中文文档
2.275.0-alpha.0发布于 2026/10/27Apache-2.0TypeScriptCommonJS零依赖近 30 天下载 1.8万

The CDK Construct Library for AWS::ServiceCatalogAppRegistry

原始使用文档
文档目录17 节
  1. Table Of Contents
  2. Application
  3. Application-Associator
  4. Create a new application to associate all the stacks in the…
  5. Import existing application to associate all the stacks in …
  6. Associate attribute group to the application used by Applic…
  7. Associate stacks deployed by CDK pipelines
  8. Associate cross-account stack
  9. Associate cross-region stack
  10. Attribute Group
  11. Associations
  12. Associating application with a new attribute group
  13. Associating an attribute group with application
  14. Associating application with a Stack
  15. Sharing
  16. Sharing an application
  17. Sharing an attribute group

AWS ServiceCatalogAppRegistry Construct Library


cdk-constructs: Experimental

The APIs of higher level constructs in this module are experimental and under active development. They are subject to non-backward compatible changes or removal in any future version. These are not subject to the Semantic Versioning model and breaking changes will be announced in the release notes. This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.


AWS Service Catalog App Registry enables organizations to create and manage repositories of applications and associated resources.

Table Of Contents

The @aws-cdk/aws-servicecatalogappregistry-alpha package contains resources that enable users to automate governance and management of their AWS resources at scale.

import * as appreg from '@aws-cdk/aws-servicecatalogappregistry-alpha';

Application

An AppRegistry application enables you to define your applications and associated resources. The application name must be unique at the account level and it's immutable.

const application = new appreg.Application(this, 'MyFirstApplication', {
  applicationName: 'MyFirstApplicationName',
  description: 'description for my application', // the description is optional
});

An application that has been created outside of the stack can be imported into your CDK app. Applications can be imported by their ARN via the Application.fromApplicationArn() API:

const importedApplication = appreg.Application.fromApplicationArn(
  this,
  'MyImportedApplication',
  'arn:aws:servicecatalog:us-east-1:012345678910:/applications/0aqmvxvgmry0ecc4mjhwypun6i',
);

Application-Associator

ApplicationAssociator defines an AppRegistry application to contain all the stacks in deployed through your cdk package. This helps to manage all the cdk deployed resources.

Create a new application to associate all the stacks in the cdk.App scope

If you want to create an Application named MyAssociatedApplication in account 123456789012 and region us-east-1 and want to associate all stacks in the App scope to MyAssociatedApplication, then use as shown in the example below:

const app = new App();
const associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {
  applications: [appreg.TargetApplication.createApplicationStack({
    applicationName: 'MyAssociatedApplication',
    // 'Application containing stacks deployed via CDK.' is the default
    applicationDescription: 'Associated Application description',
    stackName: 'MyAssociatedApplicationStack',
    // AWS Account and Region that are implied by the current CLI configuration is the default
    env: { account: '123456789012', region: 'us-east-1' },
  })],
});

This will create a stack MyAssociatedApplicationStack containing an application MyAssociatedApplication with the TagKey as managedBy and TagValue as CDK_Application_Associator.

By default, the stack will have System Managed Application Manager console URL as its output for the application created. If you want to remove the output, then use as shown in the example below:

const app = new App();
const associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {
  applications: [appreg.TargetApplication.createApplicationStack({
    applicationName: 'MyAssociatedApplication',
    // 'Application containing stacks deployed via CDK.' is the default
    applicationDescription: 'Associated Application description',
    stackName: 'MyAssociatedApplicationStack',
    // Disables emitting Application Manager url as output
    emitApplicationManagerUrlAsOutput: false,
    // AWS Account and Region that are implied by the current CLI configuration is the default
    env: { account: '123456789012', region: 'us-east-1' },
  })],
});

Import existing application to associate all the stacks in the cdk.App scope

If you want to re-use an existing Application with ARN: arn:aws:servicecatalog:us-east-1:123456789012:/applications/applicationId and want to associate all stacks in the App scope to your imported application, then use as shown in the example below:

const app = new App();
const associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {
  applications: [appreg.TargetApplication.existingApplicationFromArn({
    applicationArnValue: 'arn:aws:servicecatalog:us-east-1:123456789012:/applications/applicationId',
    stackName: 'MyAssociatedApplicationStack',
  })],
});

Associate attribute group to the application used by ApplicationAssociator

If you want to associate an Attribute Group with application created by ApplicationAssociator, then use as shown in the example below:

import * as cdk from "aws-cdk-lib";

const app = new App();

const associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {
  applications: [appreg.TargetApplication.createApplicationStack({
    applicationName: 'MyAssociatedApplication',
    // 'Application containing stacks deployed via CDK.' is the default
    applicationDescription: 'Associated Application description',
    stackName: 'MyAssociatedApplicationStack',
    // AWS Account and Region that are implied by the current CLI configuration is the default
    env: { account: '123456789012', region: 'us-east-1' },
  })],
});

// Associate application to the attribute group.
associatedApp.appRegistryApplication.addAttributeGroup('MyAttributeGroup' , {
  attributeGroupName: 'MyAttributeGroupName',
  description: 'Test attribute group',
  attributes: {},
});

Associate stacks deployed by CDK pipelines

If you are using CDK Pipelines to deploy your application, the application stacks will be inside Stages, and ApplicationAssociator will not be able to find them. Call associateStage on each Stage object before adding it to the Pipeline, as shown in the example below:

import * as cdk from "aws-cdk-lib";
import * as codepipeline from "aws-cdk-lib/pipelines";
import * as codecommit from "aws-cdk-lib/aws-codecommit";
declare const repo: codecommit.Repository;
declare const pipeline: codepipeline.CodePipeline;
declare const beta: cdk.Stage;
class ApplicationPipelineStack extends cdk.Stack {
  constructor(scope: cdk.App, id: string, props: ApplicationPipelineStackProps) {
    super(scope, id, props);

   //associate the stage to application associator.
   props.application.associateStage(beta);
   pipeline.addStage(beta);
  }
};

interface ApplicationPipelineStackProps extends cdk.StackProps {
  application: appreg.ApplicationAssociator;
};

const app = new App();
const associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {
  applications: [appreg.TargetApplication.createApplicationStack({
    applicationName: 'MyPipelineAssociatedApplication',
    stackName: 'MyPipelineAssociatedApplicationStack',
    env: { account: '123456789012', region: 'us-east-1' },
  })],
});

const cdkPipeline = new ApplicationPipelineStack(app, 'CDKApplicationPipelineStack', {
    application: associatedApp,
    env: {account: '123456789012', region: 'us-east-1'},
});

Associate cross-account stack

By default, ApplicationAssociator will not perform cross-account stack associations with the target Application, to avoid deployment failures for accounts which have not been setup for cross-account associations. To enable cross-account stack associations, make sure all accounts are in the same organization as the target Application's account and that resource sharing is enabled within the organization. If you wish to turn on cross-account sharing and associations, set the associateCrossAccountStacks field to true, as shown in the example below:

const app = new App();
const associatedApp = new appreg.ApplicationAssociator(app, 'AssociatedApplication', {
  applications: [appreg.TargetApplication.createApplicationStack({
    associateCrossAccountStacks: true,
    applicationName: 'MyAssociatedApplication',
    env: { account: '123456789012', region: 'us-east-1' },
  })],
});

Associate cross-region stack

Currently, cross-region stack association is not supported.

Attribute Group

An AppRegistry attribute group acts as a container for user-defined attributes for an application. Metadata is attached in a machine-readable format to integrate with automated workflows and tools. The attribute group name must be unique at the account level and it's immutable.

const attributeGroup = new appreg.AttributeGroup(this, 'MyFirstAttributeGroup', {
  attributeGroupName: 'MyFirstAttributeGroupName',
  description: 'description for my attribute group', // the description is optional,
  attributes: {
    project: 'foo',
    team: ['member1', 'member2', 'member3'],
    public: false,
    stages: {
      alpha: 'complete',
      beta: 'incomplete',
      release: 'not started'
    }
  }
});

An attribute group that has been created outside of the stack can be imported into your CDK app. Attribute groups can be imported by their ARN via the AttributeGroup.fromAttributeGroupArn() API:

const importedAttributeGroup = appreg.AttributeGroup.fromAttributeGroupArn(
  this,
  'MyImportedAttrGroup',
  'arn:aws:servicecatalog:us-east-1:012345678910:/attribute-groups/0aqmvxvgmry0ecc4mjhwypun6i',
);

Associations

You can associate your appregistry application with attribute groups and resources. Resources are CloudFormation stacks that you can associate with an application to group relevant stacks together to enable metadata rich insights into your applications and resources. A Cloudformation stack can only be associated with one appregistry application. If a stack is associated with multiple applications in your app or is already associated with one, CDK will fail at deploy time.

Associating application with a new attribute group

You can create and associate an attribute group to an application with the addAttributeGroup() API:

declare const application: appreg.Application;
declare const attributeGroup: appreg.AttributeGroup;
application.addAttributeGroup('MyAttributeGroupId' , {
    attributeGroupName: 'MyAttributeGroupName',
    description: 'Test attribute group',
    attributes: {},
});

Associating an attribute group with application

You can associate an application with an attribute group with associateWith:

declare const application: appreg.Application;
declare const attributeGroup: appreg.AttributeGroup;
attributeGroup.associateWith(application);

Associating application with a Stack

You can associate a stack with an application with the associateApplicationWithStack() API:

const app = new App();
const myStack = new Stack(app, 'MyStack');

declare const application: appreg.Application;
application.associateApplicationWithStack(myStack);

Sharing

You can share your AppRegistry applications and attribute groups with AWS Organizations, Organizational Units (OUs), AWS accounts within an organization, as well as IAM roles and users. AppRegistry requires that AWS Organizations is enabled in an account before deploying a share of an application or attribute group.

Sharing an application

import * as iam from 'aws-cdk-lib/aws-iam';
declare const application: appreg.Application;
declare const myRole: iam.IRole;
declare const myUser: iam.IUser;
application.shareApplication('MyShareId', {
  name:'MyShare',
  accounts: ['123456789012'],
  organizationArns: ['arn:aws:organizations::123456789012:organization/o-my-org-id'],
  roles: [myRole],
  users: [myUser],
});

E.g., sharing an application with multiple accounts and allowing the accounts to associate resources to the application.

import * as iam from 'aws-cdk-lib/aws-iam';
declare const application: appreg.Application;
application.shareApplication('MyShareId', {
  name: 'MyShare',
  accounts: ['123456789012', '234567890123'],
  sharePermission: appreg.SharePermission.ALLOW_ACCESS,
});

Sharing an attribute group

import * as iam from 'aws-cdk-lib/aws-iam';
declare const attributeGroup: appreg.AttributeGroup;
declare const myRole: iam.IRole;
declare const myUser: iam.IUser;
attributeGroup.shareAttributeGroup('MyShareId', {
  name: 'MyShare',
  accounts: ['123456789012'],
  organizationArns: ['arn:aws:organizations::123456789012:organization/o-my-org-id'],
  roles: [myRole],
  users: [myUser],
});

E.g., sharing an application with multiple accounts and allowing the accounts to associate applications to the attribute group.

import * as iam from 'aws-cdk-lib/aws-iam';
declare const attributeGroup: appreg.AttributeGroup;
attributeGroup.shareAttributeGroup('MyShareId', {
  name: 'MyShare',
  accounts: ['123456789012', '234567890123'],
  sharePermission: appreg.SharePermission.ALLOW_ACCESS,
});

版本与发布记录

@aws-cdk/aws-servicecatalogappregistry-alpha 共发布 380 个版本,首次发布于 2021/10/14;过去 12 个月发布了 64 个版本。

版本发布日期距今
2.275.0-alpha.0latest2026/10/2712 天前
2.274.0-alpha.02026/10/2018 天前
2.273.0-alpha.02026/10/0930 天前
2.272.0-alpha.02026/09/301 个月前
2.271.0-alpha.02026/09/261 个月前
2.270.0-alpha.02026/09/181 个月前

关于 @aws-cdk/aws-servicecatalogappregistry-alpha 的常见问题

@aws-cdk/aws-servicecatalogappregistry-alpha 是什么?

The CDK Construct Library for AWS::ServiceCatalogAppRegistry

如何安装 @aws-cdk/aws-servicecatalogappregistry-alpha?

在项目目录运行 npm install @aws-cdk/aws-servicecatalogappregistry-alpha,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:constructs(^10.5.0)、aws-cdk-lib(^2.275.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aws-cdk/aws-servicecatalogappregistry-alpha 支持 TypeScript 吗?

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

@aws-cdk/aws-servicecatalogappregistry-alpha 支持 ESM 还是 CommonJS?

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

@aws-cdk/aws-servicecatalogappregistry-alpha 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 20.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aws-cdk/aws-servicecatalogappregistry-alpha 可以商用吗?

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

@aws-cdk/aws-servicecatalogappregistry-alpha 的下载量有多少?

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

@aws-cdk/aws-servicecatalogappregistry-alpha 还在维护吗?

最新版本 2.275.0-alpha.0 发布于 2026/10/27(12 天前);至今共发布 380 个版本,其中过去 12 个月发布了 64 个;首次发布于 2021/10/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。