将文件从 ECS 容器下载到本地计算机的最简单方法是什么?

sup*_*ova 6 scp download amazon-ec2 amazon-web-services amazon-ecs

我需要进行一些堆转储,如果有一种简单(且快速)的方法来使文件尽可能无缝,那就太好了。

目前的做法是:

  1. 创建文件
  2. 可选:如果尚不知道,则将 SSH 密钥上传到 EC2 实例(取决于所使用的安全模型)
  3. 打开 SSH 会话(不使用 ASM,因为它有一些 OsX 缺陷)
  4. 将 docker 容器文件复制到 EC2 实例
  5. SCP 文件到本地计算机
  6. 清理

对于获取单个文件来说,这似乎非常复杂。有更直接的方法吗?由于这是一个按需用例,我可以使用手动 AWS 控制台方式或使用工具来更方便地完成此操作。谢谢

Kri*_*dás 8

如果您想要最简单的方法,那么您只需执行cat /some/file/here命令而不是 bash 并将输出发送到本地计算机上的文件。然后从本地文件的开头删除初始 aws cli 消息,例如:

The Session Manager plugin was installed successfully. Use the AWS CLI to start a session.


Starting session with SessionId: ecs-execute-command-<some session id>
This session is encrypted using AWS KMS.
Run Code Online (Sandbox Code Playgroud)

如果是二进制文件,则将其另存为txt文件,删除上面提到的初始cli输出,并使用二进制扩展名重命名。例子:

aws ecs execute-command --region <your region> --cluster <your cluster> --task <your task ID> --container <your container> --command "cat /tmp/reportBatch.zip" --interactive >> ~/reportBatch.txt
Run Code Online (Sandbox Code Playgroud)

对于此方法,您只需要访问您的 ECS 实例并允许在其上运行命令。