AWS ECS:调用启动任务时获取实例容器的IP public
AWS ECS : get public IP of the instance container when start task is called
我使用 AWS-SDK for node js 成功启动了任务,但此响应不包含启动任务的实例的 IP 地址。
有什么方法可以在同一个回复中检索实例的 IP 吗?
有哪些可能的选择?但是我确实在回复中看到了 containerInstanceArn。
var ecs = new ECS_AWS.ECS({apiVersion: '2014-11-13'});
var params = {
family: 'test-code123',
containerDefinitions: [
{
environment: [],
name: 'simple-app',
image: 'abc/cbuild:2',
cpu: 1024,
memory: 500,
portMappings: [
{
containerPort: 8000,
hostPort: 8000
}
],
command: [
'node',
'/src1/server.js',
'8000'
],
essential: true
}
]
};
ecs.registerTaskDefinition(params, function(err, data) {
if (err) console.log("ECS error" + err + err.stack); // an error occurred
else console.log(data);
创建任务后,我创建一个 runTask API 调用
var ecs = new ECS_AWS.ECS({apiVersion: '2014-11-13'});
var params = {
taskDefinition: 'arn:aws:ecs:ap-southeast-1:32:task-definition/test-code123:5', /* required */
count: 1,
};
ecs.runTask(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
基于现有的ECS api,没有直接API获取任务启动实例的IP。
需要使用ecs的describeContainerInstances
API获取实例的物理id,然后调用ec2APIs获取任务所在实例的IP已开始。
我使用 AWS-SDK for node js 成功启动了任务,但此响应不包含启动任务的实例的 IP 地址。 有什么方法可以在同一个回复中检索实例的 IP 吗?
有哪些可能的选择?但是我确实在回复中看到了 containerInstanceArn。
var ecs = new ECS_AWS.ECS({apiVersion: '2014-11-13'});
var params = {
family: 'test-code123',
containerDefinitions: [
{
environment: [],
name: 'simple-app',
image: 'abc/cbuild:2',
cpu: 1024,
memory: 500,
portMappings: [
{
containerPort: 8000,
hostPort: 8000
}
],
command: [
'node',
'/src1/server.js',
'8000'
],
essential: true
}
]
};
ecs.registerTaskDefinition(params, function(err, data) {
if (err) console.log("ECS error" + err + err.stack); // an error occurred
else console.log(data);
创建任务后,我创建一个 runTask API 调用
var ecs = new ECS_AWS.ECS({apiVersion: '2014-11-13'});
var params = {
taskDefinition: 'arn:aws:ecs:ap-southeast-1:32:task-definition/test-code123:5', /* required */
count: 1,
};
ecs.runTask(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
基于现有的ECS api,没有直接API获取任务启动实例的IP。
需要使用ecs的describeContainerInstances
API获取实例的物理id,然后调用ec2APIs获取任务所在实例的IP已开始。