c# - 如何检索用于启动 Fargate 任务的子网列表?

标签 c# aws-sdk amazon-vpc aws-fargate

我在 Visual Studio 2017 中使用带有 C# 的 AWS 开发工具包,并且有一个原型(prototype)可以在 ECS 中启动 Fargate 服务。作为设置的一部分,您实例化一个 CreateServiceRequest 对象,该对象需要一个带有 SecurityGroupsSubnetsNetworkConfiguration.AwsVpcConfiguration 设置.

var request = new CreateServiceRequest();

request.ServiceName = "myService";
request.TaskDefinition = "myTask";   // family[:revision] of the task definition to use
request.ClientToken = Guid.NewGuid().ToString().Replace("-", "");  // max 32 characters!
request.Cluster = "default";
request.DesiredCount = 1;
request.LaunchType = LaunchType.FARGATE;

request.DeploymentConfiguration = new DeploymentConfiguration
{
    MaximumPercent = 100,
    MinimumHealthyPercent = 50
};

// configure the network and security groups for the task
List<string> securityGroups = new List<string>();
securityGroups.Add("sg-123456");

List<string> subnets = new List<string>();
subnets.Add("subnet-9b36aa97");

request.NetworkConfiguration = new NetworkConfiguration
{
    AwsvpcConfiguration = new AwsVpcConfiguration
    {
        AssignPublicIp = AssignPublicIp.ENABLED,
        SecurityGroups = securityGroups,
        Subnets = subnets
    }
};

当我通过 AWS 控制台手动配置服务时,它们会显示可供选择的子网列表。因此,我想知道如何以编程方式检索我们的 VPC 中可用的子网列表。

我正在他们的 SDK documentation 中搜索可能的解决方案,感谢任何指向他们文档或示例的指针!

最佳答案

看看EC2Client,你会发现很多VPC相关的API都与EC2服务相关联。具体查看 AmazonEC2Client.DescribeSubnets(DescribeSubnetsRequest),方法文档 here :

请求

Amazon.EC2.Model.DescribeSubnetsRequest

响应

Amazon.EC2.Model.DescribeSubnetsResponse

响应包含 Amazon.EC2.Model.Subnet 的列表在决定将哪个子网传递给您的 Fargate 请求时,您将从中检索字符串属性 SubnetId

示例用法(来自链接文档):

var response = client.DescribeSubnets(new DescribeSubnetsRequest 
{
    Filters = new List<filter> {
        new Filter {
            Name = "vpc-id",
            Values = new List<string> {
                "vpc-a01106c2"
            }
        }
    }
});

List<subnet> subnets = response.Subnets;

延伸阅读

关于c# - 如何检索用于启动 Fargate 任务的子网列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47682261/

相关文章:

c# - 如何将 JSON 结果返回到 Ajax.BeginForm

amazon-web-services - 为什么 boto3 s3 对象缺少存储类属性?

未调用 IOS AWS Cognito 处理程序并返回错误的数据集值

postgresql - AWS - 通过 EC2 隧道连接到 RDS

amazon-elastic-beanstalk - Elastic Beanstalk : Migrate DB Security Group to VPC Security Group

amazon-web-services - 无法连接 AWS EC2 端口 6379 上的 Redis 服务器

c# - 使用 C++ 或 C# 打开之前的全局检测文件信息

c# - 将平面 JSON 转换为嵌套 JSON

c# - 如何使用带有 C# 或 VB.NET 的 Acrobat SDK 从文件创建 PDF?

ruby - 使用 AWS SDK (v2) 从 URL 获取对象键