Ability to pass command to `altis stack ssh` and pipe ouput

オープン
#16 コメント 2 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
30/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
javascript
領域
api, cli

調査の方向性

altis-cli stack ssh コマンドと、SSH セッションの作成に関係する Altis Dashboard APIs から始めます。初期コマンド、MOTD の抑制、stdin/stdout/stderr の処理をどのように表現できるかを、言及されている Amazon SSM の制限も含めて調査します。コマンドが引数とパイプ経由の入力を受け取り、利用可能な出力をローカルパイプにクリーンに返せるようになれば完了です。

索引モデルが issue の本文から書いたものです。

説明

User Story

As a CLI user I am able to pass a command to execute to altis-cli stack ssh such as wp user list and then pipe the output to my local machine. For example, something like altis-cli stack ssh altis-demo -- wp user list | grep joe (in this case grep is being run on my local machine.

I would also like to pipe data in to a command, for example: echo joe | altis-cli stack ssh altis-demo -- wp user get.


I chatted to @rmccue about the feasibility to doing these, and there are a few low-level challenges that we need to overcome to be able to implement this. As I understand it:

  1. We need to be able to change the "initial" command when ssh is run, as currently it will output MOTD and other boilerplate as part of setting up the SSH sessions. If developers want to just be able to just run a command and pipe output, we can't have any of the initial data.
  2. Altis Dashbaord APIs need to be updated to allow passing the initial command, as we can't run the command client-side in the interactive sessions, as there's no easy to way understand when the command might be complete and exit the program.
  3. Currently the session's SSH output is all a single stream of data, so there's no way to split stdout / stderr in pipes on the client machine. This means if something like wp user list output PHP errors or any other error, it would be in stdout and piped along with the list of users. This makes the data useless in many situations. There's an open issue on https://github.com/aws/amazon-ssm-agent/issues/358 (2.5 years old) to address this, but it doesn't look like there's any progress.
主要言語
TypeScript
スター
0
フォーク
2
平均マージ
15時間 10分
マージ済み PR(30日)
6

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

humanmade/altis-cli のほかの issue

humanmade/altis-cli の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。