如何在 AWS CDK 中获取当前组织的 ID?

Jos*_*off 9 amazon-web-services aws-cdk

AWS 中的构造 has this.account,它将返回当前的 AWS 账户 ID,但如何获取当前的组织 ID?

此信息可通过命令行获得aws organizations describe-organization,如有必要,我可以通过环境变量传递它,但我更喜欢使用 CDK 代码来完成此操作。

小智 0

有一些自定义资源可用于执行 AWS API 调用:

const describeOrganizationOutput = new AwsCustomResource(this, 'DescribeOrganizationCustomResource', {
        installLatestAwsSdk: true,
        onUpdate: {
            service: 'organizations',
            action: 'describeOrganization',
            physicalResourceId: PhysicalResourceId.of('Organization')
        },
        policy: AwsCustomResourcePolicy.fromStatements([
            new PolicyStatement({
                resources: ['*'],
                actions: ['organizations:DescribeOrganization'],
                effect: Effect.ALLOW,
            })
        ]),
    });
Run Code Online (Sandbox Code Playgroud)

然后像这样引用组织 ID:

describeOrganizationOutput.getResponseField('Organization.Id')
Run Code Online (Sandbox Code Playgroud)

https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.custom_resources.AwsSdkCall.html