使用 .NET SDK 启动带有用户数据的 AWS EC2 实例

Launch AWS EC2 Instance with User-data using the .NET SDK

如何在使用 AWS .NET SDK 启动新的 EC2 实例时在用户数据中设置 ECS_CLUSTER=my_cluster_name?

我找到了有关通过 运行 机器上的 bash 脚本手动执行此操作的信息。但我特别感兴趣的是学习如何使用 SDK 以编程方式执行此操作。

在 RunInstancesRequest class 中找到它。对我来说,关键不仅在于找到 UserData 字段,还在于包括 IamInstanceProfile。这是一个例子:

string userDataString = $"#!/bin/bash \necho ECS_CLUSTER=my_cluster_name >> /etc/ecs/ecs.config";
string userData = System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(userDataString));
var response = client.RunInstances(new RunInstancesRequest 
{
    ImageId = "ami-abc12345",
    InstanceType = "t2.micro",
    KeyName = "my-key-pair",
    MaxCount = 1,
    MinCount = 1,
    SecurityGroupIds = new List<string> { "sg-1a2b3c4d"},
    SubnetId = "subnet-6e7f829e",
    UserData = userData,
    IamInstanceProfile = new IamInstanceProfileSpecification { Name = "ecsInstanceRole" }
});

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_container_instance.html https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/EC2/TRunInstancesRequest.html