Amazon s3 Nomad将下载的S3文件放在哪里?

Amazon s3 Nomad将下载的S3文件放在哪里?,amazon-s3,nomad,Amazon S3,Nomad,我有以下游牧工作: job "aws_s3_copy_rev2" { datacenters = ["dc1"] type = "system" group "aws_s3_copy_rev2" { count = 1 task "aws_s3_copy_rev2" { driver = "raw_exec" artifact { source = "s3::https://my-data-files/123/"

我有以下游牧工作:

job "aws_s3_copy_rev2" {
  datacenters = ["dc1"]
  type = "system"

  group "aws_s3_copy_rev2" {
    count = 1

    task "aws_s3_copy_rev2" {
      driver = "raw_exec"

      artifact {
        source = "s3::https://my-data-files/123/"
      }

      resources {
        cpu    = 500 # 500 MHz
        memory = 256 # 256MB
        network {
          port "http" {}
        }
      }
    }
  }
}
我使用
nomad run aws\u s3\u copy\u rev2.nomad
提交了作业。但我不知道文件下载到哪里。游牧者把下载的S3文件放在哪里

这是我启动Nomad代理的配置文件

# Increase log verbosity
log_level = "DEBUG"

# Setup data dir
data_dir = "/tmp/client1"

# Give the agent a unique name. Defaults to hostname
name = "client1"

# Enable the client
client {
    enabled = true

    # For demo assume we are talking to server1. For production,
    # this should be like "nomad.service.consul:4647" and a system
    # like Consul used for service discovery.
    servers = ["xxx:4647"]
    options {
      "driver.raw_exec.enable" = "1"
    }
}

# Modify our port to avoid a collision with server1
ports {
    http = 5657
}

通常工件存储在Nomad分配之外的分配文件夹中,默认情况下,Linux机器上的分配文件夹是
/etc/Nomad.d/alloc///local/
。不确定其他操作系统上的东西落在哪里

在本例中,您的
数据\u dir
被设置为
/tmp/client1
,因此我希望这些文件类似于
/tmp/client1/alloc///local/

需要注意的是,这些工件是在运行作业分配的Nomad“client”上生成的,而不是在启动作业的机器上生成的


此外,您可能需要小心地在/tmp文件夹中查找Nomad数据目录,因为它可能会定期被删除,这可能解释了您找不到这些文件的原因。

通常工件存储在Nomad分配之外的分配文件夹中,在Linux机器上,默认情况下是
/etc/nomad.d/alloc///local//
。不确定其他操作系统上的东西落在哪里

在本例中,您的
数据\u dir
被设置为
/tmp/client1
,因此我希望这些文件类似于
/tmp/client1/alloc///local/

需要注意的是,这些工件是在运行作业分配的Nomad“client”上生成的,而不是在启动作业的机器上生成的


此外,您可能需要小心地在/tmp文件夹中创建Nomad数据目录的根目录,因为它可能会定期被删除,这可能解释了您找不到这些文件的原因。

您可以在Nomad环境中将此目录引用为${Nomad\u TASK\u DIR} 并使用以下路径访问或执行文件:

artifact {
    source = "s3::https://some-bucket/code/archive-logs.sh"
    destination = "/local/"
  }

  driver = "raw_exec"
  kill_timeout = "120s"

  config {
    command = "/bin/bash"
    args = ["${NOMAD_TASK_DIR}/archive-logs.sh","7"]
  }

您可以在nomad环境中将此目录引用为${nomad\u TASK\u DIR} 并使用以下路径访问或执行文件:

artifact {
    source = "s3::https://some-bucket/code/archive-logs.sh"
    destination = "/local/"
  }

  driver = "raw_exec"
  kill_timeout = "120s"

  config {
    command = "/bin/bash"
    args = ["${NOMAD_TASK_DIR}/archive-logs.sh","7"]
  }

我在
/etc/
中找不到
nomad.d
目录。根据您提供的配置更新了我的答案。我在
/etc/
中找不到
nomad.d
目录。根据您提供的配置更新了我的答案。