Terraform: — Как правильно передавать входные переменные для команд cdktf для решения на основе C#?C#

Место общения программистов C#
Ответить
Anonymous
 Terraform: — Как правильно передавать входные переменные для команд cdktf для решения на основе C#?

Сообщение Anonymous »

Вот информация о нашей среде технической разработки:
  • HashiCorp.Cdktf 0.16.3
  • HashiCorp.Cdktf .Providers.Aws 14.0.4
  • HashiCorp.Cdktf.Providers.Docker 7.0.1
  • Amazon.Lambda.Core 2.1.0
    Amazon.Lambda.Serialization.SystemTextJson 2.3.1
  • Amazon.Lambda.APIGatewayEvents 2.6.0
Проект AWS Lambda содержит следующее:
  • Amazon.Lambda.Core 2.1.0
  • Amazon.Lambda.Serialization.SystemTextJson 2.3.1
  • Amazon.Lambda.APIGatewayEvents 2.6.0
I Я пытаюсь использовать инструмент Terraform CDKTF для развертывания AWS Lambda на основе C# в облаке Amazon AWS.
В моем решении Visual Studio 2022 у меня есть следующие проекты:
  • AWSSrvlessHelloWorldApp
  • AWSSrvlessHelloWorldApp.Tests
  • MyTerraformStack

    Я создаю лямбда-проект AWSSrvlessHelloWorldApp.
    Я хотел предоставить параметры аргумента при запуске cdktf Deploy
    Поэтому В процессе исследования я наткнулся на следующую ссылку на веб-страницу, описывающую, как использовать переменные Terraform в качестве входных параметров:
    https://developer.hashicorp.com/terrafo ... /variables -and-outputs
    Вот выдержка из вышеупомянутой веб-страницы, на которой показан пример объявления и создания экземпляров переменных Terraform в качестве входных параметров в C#:
    I создайте лямбда-проект AWSSrvlessHelloWorldApp.
    Я хотел предоставить параметры аргумента при запуске cdktf Deploy
    Поэтому, исследуя, я столкнулся со следующим ссылка на веб-страницу, описывающая, как использовать переменные Terraform в качестве входных параметров:
    https://developer.hashicorp.com/terrafo ... outputsВот выдержка из вышеупомянутой веб-страницы, на которой показан пример объявления и создания экземпляров переменных Terraform в качестве входных параметров в C#:

    Код: Выделить всё

    TerraformVariable imageId = new TerraformVariable(this, "imageId",
    new TerraformVariableConfig
    {
    Type = "string",
    Default = "ami-abcde123",
    Description = "What AMI to use to create an instance",
    });
    
    new Instance(this, "hello", new InstanceConfig
    {
    Ami = imageId.StringValue,
    InstanceType = "t2.micro",
    });
    
    В MyTerraformStack (т. е. проекте TerraformStack) у меня есть следующие файлы:
  • Program.cs
    MainStack.cs
В Program.cs у меня есть следующий код( Обратите внимание, что я использую Debugger.Launch( ), чтобы я мог вызывать MyTerraformStack в Visual Studio 2022 всякий раз, когда запускаю cdktf из командной строки Powershell):

Код: Выделить всё

class Program
{
public static void Main(string[] args)
{
Debugger.Launch();
App app = new App();
MainStack stack = new MainStack(app, "aws_instance");
app.Synth();
}
}
В MainStack.cs содержимое кода:

Код: Выделить всё

class MainStack : TerraformStack
{
public MainStack(Construct scope, string id) : base(scope, id)
{
TerraformVariable imageId = new TerraformVariable(this, "imageId", new
TerraformVariableConfig
{
Type = "string",
Default = "ami-abcde123",
Description = "What AMI to use to create an instance",
});

new Instance(this, "hello", new InstanceConfig
{
Ami = imageId.StringValue,
InstanceType = "t2.micro",
});

...Blah Blah configuring ITerraformAssetConfig and

IS3BucketObjectConfig and IIamRoleConfig

Blah Blah...

...Blah Blah instantiating S3BucketObject , IamRole ,

LambdaFunction Blah Blah Blah

}
}
На вышеупомянутой веб-странице руководства я попробовал все различные способы предоставления параметров аргумента:
• Переменная среды: TF_VAR_imageId=testing ( в Powershell я выполняю $Env:TF_VAR_imageId = "testing" перед запуском команд cdktf)
  • Опция CLI: cdktf Deploy --var='imageId=testing'
  • Код: Выделить всё

    --var-file
    Опция CLI: cdktf Deploy --var-file=/path/to/variables.tfvars
    В файлеvariables.tfvars я поместил следующее содержимое:

Код: Выделить всё

imageId=testing
  • Автоматически загружаемые файлы конфигурации: мы автоматически загружаем файлы *.auto.tfvars и terraform.tfvars, найденные в текущем рабочем каталоге.
Однако, когда я запустил средство запуска отладки, я добавил экземпляр TerraformVariable imageId в список наблюдения Visual Studio 2022.
Я лихорадочно просмотрел свойства свойств imageId в списке наблюдения Visual Studio 2022, но ни одно из них не содержит значения «тестирование».
Может кто-нибудь объяснить, как я могу правильно передавать входные переменные для команд cdktf?

Подробнее здесь: https://stackoverflow.com/questions/782 ... or-a-c-sha
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»