2018年1月15日月曜日

[Google Cloud Platform] VSCodeでGCPに接続して同期保存して便利に使う [sftp]

【試した環境】
Google Cloud Platform(GCP)[VMインスタンス]で実行
OS : Linux(Debian 9.2)
接続元OS : Windows 7
Visual Studio Code(VSCode)(1.19.1)
sftp(0.9.5)


[Microsoft]が開発している有名エディタ[Visual Studio Code(VSCode)]
最近、軽くて軽快という噂をよく目にするので、こちらを試しているところです。

今回はこの[VSCode]から[Google Cloud Platform(GCP)]にFTP接続して便利に使いたいと思います。
[Visual Studio Code]で保存すると同時に同期保存が可能とすることもできます。

今回は[sftp]というパッケージを使います。


[sftp]をインストール

まずは[VSCode]にパッケージ[sftp]をインストールします。
[VSCode]左側のアイコンメニュー
 [拡張機能(Ctrl+Shift+X)] を選択
 [sftp]で検索
 [インストール]ボタンをクリックしてインストール

設定ファイルを作成

ワークスペースを保存していない場合は、まずワークスペースを保存して作ります。
 [ファイル] - [名前をつけてワークスペースを保存...]

ワークスペースに接続のための設定ファイルを作成します。
[VSCodeメニュー]
 [表示] - [コマンドパレット]
 [SFTP: Config]と入力しEnter

すると[.vscode]ディレクトリ内に[sftp.json]ファイルが作成されるので、この設定ファイルに必要な情報を入力していきます。
[Google Cloud Platform(GCP)]の接続で最低限必要な設定は以下。
host : ホスト(またはIP)を設定
 user : ユーザ名
 pass : パスワード
 privatekey : プライベートキー(次のフェーズで作成した秘密鍵ファイルを指定)
 remotePath:同期をとるリモートパス
  ※大量にファイルがダウンロードされてしまうので、ルートのままにしないことをオススメします。
 ignore:必要に応じて無視するファイル、フォルダを設定します。

[公開鍵/秘密鍵]を作成

SSH接続のための[公開鍵/秘密鍵]を作成します。
以下を参考に環境に合わせて作成しします。
 [Mac] 秘密鍵/公開鍵を作成する
 [Windows] PuTTYgenで秘密鍵/公開鍵を作成する
作成時の注意点としては「コメントにユーザ名」を指定する必要があります。
  - 新しい SSH 認証鍵ペアの作成

作成した[秘密鍵]ファイルを任意の場所に置き、前の設定ファイルにパスを設定します。

[公開鍵]を[Google Cloud Platform(GCP)]側に設定

最後に[公開鍵]を[Google Cloud Platform(GCP)]側に設定します。
[Google Cloud Platform(GCP)]コンソール
 [Compute Engine] - [メタデータ]にアクセス
 [SSH認証鍵]タブ -[編集]ボタンをクリック
 一番下の[+項目を追加]をクリック

[公開鍵]をを入力するテキストボックスが開くので、そこに[公開鍵]の文字列をコピペします。
フォーマットが以下になっていることを確認してください。(改行なしの1行)
ssh-rsa [KEY_VALUE(とても長い)] [USERNAME]

これで設定は完了しました。

[VSCode]で接続

[VSCode]で接続してみます。
[VSCodeメニュー]
 [表示] - [コマンドパレット]
 [SFTP: Download]と入力しEnter
 フォルダの指定が求められるのでフォルダを指定
設定ファイルから指定した[remotePath]の[ディレクトリ]のみのダウンロードが始まります。(このタイミングではファイルはダウンロードされないようです)

ファイルをダウンロードするには、左の[エクスプローラー]で下の各コマンドを実行してファイルを操作します。
たとえば、[エクスプローラー]のコンテキストメニューから[SFTP: Download]を選択すると、ディレクトリ内のファイルまたは単一ファイルがダウンロードされます。

各コマンドの説明

【SFTP: Config】
設定ファイルの作成(既に実施済み)

【SFTP: Upload】
選択したファイルをローカルディレクトリからリモートディレクトリにコピーし、リモートディレクトリを上書きします。 リモート側にのみ存在するファイルは影響を受けません。 ローカル側にのみ存在するファイルは、リモートで作成されます。

【SFTP: Download】
上記と同じであるが、反対方向。

【SFTP: Sync To Remote】
ディレクトリにのみ使用できます。 ローカルディレクトリからリモートの上書き先に共通ファイル(両側に存在するファイル)をコピーします。 [syncMode]を[full]に設定すると、ローカル側にのみ存在するファイルはリモートで作成され、リモート側にのみ存在するファイルは削除されます。

【SFTP: Sync To Local】
上記と同じであるが、反対方向。

設定

【uploadOnSave】
[true]に設定すると自動保存設定となる。
[Ctrl+S]などで保存をすれば自動的にサーバにアップロードされます。
(実際はファイルをローカルに保存してからFTPでアップロードされている感じです)

【ignore】
無視するファイル、フォルダを指定します。
"**/.vscode"と指定すれば、ファイルツリーの任意の深さにある.vscodeという名前のすべてのファイルまたはディレクトリを無視します。
"**/.vscode/**"と指定すれば、ファイルツリーの任意の深さにある.vscodeディレクトリの下にあるすべてのファイルまたはディレクトリを無視します。
必要に応じて、以下のようなものを設定しておくとよいと思います。
        "**/.cache/**",
        "**/.keras/**",
        "**/.local/**",
        "**/.ssh/**"

【参考】


0 件のコメント:

コメントを投稿