要将资源部署到不同的AWS账户,你可以使用AWS Cloud Development Kit (CDK)。以下是一种解决方法,包含代码示例:
aws-accounts.json的文件,用于存储不同账户的配置信息。例如:{
  "accountA": {
    "accountId": "123456789012",
    "region": "us-west-2"
  },
  "accountB": {
    "accountId": "987654321098",
    "region": "us-east-1"
  }
}
cross-account-stack.ts的文件,用于定义交叉账户的堆栈。例如:import cdk = require('aws-cdk-lib');
import { Construct } from 'constructs';
import { Stack, StackProps } from 'aws-cdk-lib';
interface CrossAccountStackProps extends StackProps {
  accountId: string;
  region: string;
}
export class CrossAccountStack extends Stack {
  constructor(scope: Construct, id: string, props: CrossAccountStackProps) {
    super(scope, id, props);
    // 在此处定义要部署的资源
  }
}
app.ts的文件,用于定义CDK应用程序。例如:import cdk = require('aws-cdk-lib');
import { App } from 'aws-cdk-lib';
import { CrossAccountStack } from './cross-account-stack';
const app = new App();
// 读取aws-accounts.json文件内容
const accounts = require('./aws-accounts.json');
// 部署到账户A
const accountAStack = new CrossAccountStack(app, 'AccountAStack', {
  env: {
    account: accounts['accountA'].accountId,
    region: accounts['accountA'].region,
  },
  accountId: accounts['accountA'].accountId,
  region: accounts['accountA'].region,
});
// 部署到账户B
const accountBStack = new CrossAccountStack(app, 'AccountBStack', {
  env: {
    account: accounts['accountB'].accountId,
    region: accounts['accountB'].region,
  },
  accountId: accounts['accountB'].accountId,
  region: accounts['accountB'].region,
});
app.synth();
通过以上步骤,你可以将CrossAccountStack堆栈部署到不同的AWS账户中。你只需在aws-accounts.json文件中配置不同账户的信息,并在app.ts文件中根据配置信息创建堆栈实例并部署到不同账户中。