Несколько поставщиков AWS, использующих CDKTF

#amazon-web-services #cdktf

#amazon-веб-сервисы #cdktf

Вопрос:

Я использую CDKTF и python для проекта, в котором я генерирую вывод JSON, который будет интерпретироваться Terraform.

У меня есть вариант использования, когда мне нужно отправить несколько поставщиков AWS с псевдонимами. Я могу указать одного поставщика в стеке с помощью этого add_provider метода, но я не могу добавить вторичного поставщика с псевдонимами без использования add_override .

Есть ли способ сделать это без конфликтов имен в ключах, где CDKTF выдает ошибку, что я указываю aws ключ дважды.

В основном я спрашиваю, есть ли способ указать ключ, который я использую при указании ключей в поставщиках, чтобы я получил что-то вроде:

 "providers": {  "aws": "aws.account-one",  "aws.two": "aws.account-two" }  

Пожалуйста, дайте мне знать, если я делаю это неправильно.

Заранее спасибо.

Ответ №1:

С помощью CDKTF вы можете указать несколько поставщиков, например:

 class MyStack extends TerraformStack {  constructor(scope: Construct, ns: string) {  super(scope, ns);   new AwsProvider(this, "aws", {  region: "eu-central-1",  });   const provider = new AwsProvider(this, "aws.two", {  region: "us-east-1",  alias: "aws.two",  });   // this cert is created in the us-central-1 region  // it defaults to the provider without an alias  new acm.AcmCertificate(this, "cert", {  domainName: "cdktf.com",  validationMethod: "DNS",  });   // this cert is created in the us-east-1 region  const cert = new acm.AcmCertificate(this, "cert", {  domainName: "example.com",  validationMethod: "DNS",  provider,  });  } }  

Это задокументировано в примерах: https://github.com/hashicorp/terraform-cdk/blob/main/examples/typescript/aws-cloudfront-proxy/main.ts

Комментарии:

1. Спасибо вам за ваш ответ. Однако я пытаюсь указать список поставщиков, все из которых имеют псевдонимы. У меня нет поставщика по умолчанию как такового, так как я ориентируюсь на несколько учетных записей за один раз. Все, что я делаю, — это создаю терраформу JSON с блоком поставщиков в конфигурации, который ссылается на обоих поставщиков aws без столкновения ключей.

2. Это означает, что вам нужно будет указать поставщика, которого вы хотите использовать все время