我有一个运行服务的集群,也能够从命令行启动Fargate任务。我可以获取taskArn作为启动任务的响应,并且可以使用“ aws ecs wait”来等待任务处于运行状态。我一直在努力弄清楚如何获取任务的公共IP。我可以很容易地通过网页找到它,并且可以通过其公共IP访问机器。
如何使用CLI界面获取Fargate任务的公共IP?
我正在使用以下命令来启动任务,等待它运行并检索任务描述:
$ aws ecs run-task --launch-type FARGATE --cluster xxxx --task-definition xxxx --network-configuration xxxx
$ aws ecs wait <taskArn>
$ aws ecs describe-tasks --cluster xxxx --task <taskArn> | grep -i ipv4
Run Code Online (Sandbox Code Playgroud)
最后一条命令只给了我私有IP ...
"privateIpv4Address": "10.0.1.252",
"name": "privateIPv4Address"
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用:
$ ecs-cli ps --cluster xxxx
Run Code Online (Sandbox Code Playgroud)
但是“端口”列为空白。
Name State Ports TaskDefinition
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxxx RUNNING xxxx:1
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxxx RUNNING xxxx:1
Run Code Online (Sandbox Code Playgroud) 我有以下测试代码并使用--genHarness调用chiseMain.Verilog是为线束生成的,但它不包含Tester类中的任何逻辑.对于为什么我没有得到我期望的逻辑的任何想法?我正在使用Chisel 2.10.
码:
class TestMultiPortedMem(c: MultiPortedMem) extends Tester(c) {
var i = 0
// Write address as data
for (p <- c.io.wports) {
poke(p.wen, 1)
poke(p.addr, i)
poke(p.wdata, i)
step(1)
i = i + 1
}
// Read it back
i = 0
for (p <- c.io.rports) {
poke(p.addr, i)
step(1)
expect(p.rdata, i)
i = i + 1
}
}
object TestMem {
def main(args: Array[String]): Unit = {
//chiselMainTest(Array[String]("--backend", "v", "--genHarness"),
chiselMainTest(args,
() => Module(new MultiPortedMem(1,1,1,128,32))){c => new TestMultiPortedMem(c)} …Run Code Online (Sandbox Code Playgroud)