我正在创建一个ECS任务,以便在由EventBridge事件触发时运行,但我无法为该任务分配公共IP地址,这是访问ECS获取任务所必需的.我正在使用的VPC只有公共VLAN.
这是相关代码:
const cluster = new ecs.Cluster(this, "default-cluster", {
vpc,
clusterName: `xxxxx`,
enableFargateCapacityProviders: true,
});
const taskDefinition = new ecs.FargateTaskDefinition(
this,
`${process.type}-task`,
{
memoryLimitMiB: 512,
cpu: 256,
runtimePlatform: {
cpuArchitecture: ecs.CpuArchitecture.X86_64,
operatingSystemFamily: ecs.OperatingSystemFamily.LINUX,
},
}
);
taskDefinition
.addContainer(`xxxxxxxx`, {
image: ecs.ContainerImage.fromEcrRepository(repo, props.imageTag),
containerName: `xxxxxx`,
})
.addPortMappings({
containerPort: 3000,
});
const releaseTask = new eventBridgeTargets.EcsTask({
cluster,
taskDefinition,
taskCount: 1,
launchType: ecs.LaunchType.FARGATE,
subnetSelection: vpc.selectSubnets({
subnetType: SubnetType.PUBLIC,
}),
assignPublicIp: true,
});
我收到的错误是:
Error: assignPublicIp should be set to true only for PUBLIC subnets
我做错了什么?