#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. Это означает, что вам нужно будет указать поставщика, которого вы хотите использовать все время