【VS Code】Visual Studio Code ~ WSLプラグイン ~

■ はじめに

小ネタ。(日曜だし)

https://dk521123.hatenablog.com/entry/2023/03/25/021432

で、WSL上にAWS用の開発環境を構築したが
これをローカル環境のVS Codeから簡単にアクセスする方法として
VS Codeプラグイン「WSL (Remote-WSL)」ってゆーのがあり
めっちゃ簡単だったので、メモ。

目次

【1】前提条件
 1)Linux環境が構築されていること
 2)ローカル上にVS Codeがインストールされていること
【2】VS Codeプラグイン「WSL」
【3】Hello world
 例1:Scala with AWS SDK for java
【4】おまけ:WSL内にVS Codeをインストール

【1】前提条件

1)Linux環境が構築されていること

* 今回の場合は、Windows環境でWSLがインストールされている
* 以下の関連記事を参照のこと。

WSL ~ Docker-CE + Genie / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/03/003836

2)ローカル上にVS Codeがインストールされていること

https://dk521123.hatenablog.com/entry/2019/10/24/000000

より抜粋

Visual Studio Codeダウンロードしインストールする

https://code.visualstudio.com/

【2】VS Codeプラグイン「WSL」

* VS Code上からWSL2環境へ接続するためのプラグイン

https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl

設定

* VS Codeプラグイン「WSL」を検索して、
 インストールするだけ
 => いつの間にかインストールされていた、、、

コメント

* めちゃめちゃ便利。
 => 以下の関連記事で扱ったプラグイン「Metals」も、
  VS Code上で、WSL上にインストールすることが簡単にできた

https://dk521123.hatenablog.com/entry/2023/03/10/193805

【3】Hello world

例1:Scala with AWS SDK for java

import scala.collection.JavaConversions._
import scala.reflect._

import java.net.URI

import software.amazon.awssdk.regions.Region
import software.amazon.awssdk.services.s3.S3Client
import software.amazon.awssdk.services.s3.paginators.ListObjectsV2Iterable
import software.amazon.awssdk.services.s3.model.ListObjectsV2Request
import software.amazon.awssdk.services.s3.model.ListObjectsV2Response
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials

object Main extends App {
  val region = Region.US_WEST_1
  val bucketName = "local-demo-bucket"
  val s3Key = "sample/"
  val accessKey = "dummy"
  val secretAccessKey = "dummy"
  val endpoint = "http://localhost:4566"

  val credentials = AwsBasicCredentials.create(accessKey, secretAccessKey)
  val s3Client = S3Client.builder()
    .region(region)
    .credentialsProvider(StaticCredentialsProvider.create(credentials))
    .endpointOverride(new URI(endpoint))
    .forcePathStyle(true)
    .build()
  var listObjectsReqManual = ListObjectsV2Request.builder()
    .bucket(bucketName)
    .prefix(s3Key)
    .build()
  val listObjResponse = s3Client.listObjectsV2(listObjectsReqManual)

  // See https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/model/S3Object.html
  for (content <- listObjResponse.contents()) {
    println(s"content.key = ${content.key}")
    println(s"content.size = ${content.size}")
  }
}

build.sbt

scalaVersion := "2.12.17"

name := "hello-world"
organization := "ch.epfl.scala"
version := "1.0"

libraryDependencies ++= Seq(
  "org.scala-lang.modules" %% "scala-parser-combinators" % "2.1.1",
  "software.amazon.awssdk" % "s3" % "2.20.30",
  "software.amazon.awssdk" % "secretsmanager" % "2.20.30",
  "software.amazon.awssdk" % "ses" % "2.20.30"
)

実行結果

$ sbt run

...
content.key = sample/hello.txt
content.size = 13
content.key = sample/hi.txt
content.size = 11

【4】おまけ:WSL内にVS Codeをインストール

今回のWSLプラグインを調べる前に
WSL内にVS Codeをインストールをやったので、せっかくなのでメモ

https://learn.microsoft.com/ja-jp/windows/wsl/tutorials/wsl-vscode

を参考に入れていく

1)前準備

sudo apt-get update

# Add wget/ca-certificates
#  wget : Web サーバーからコンテンツを取得
#  ca-certificates: SSL 接続の信頼性を許可
sudo apt-get install wget ca-certificates

2)VS Codeをインストール

code .

参考文献

https://zenn.dev/s_ryuuki/articles/4b9631674adea4

関連記事

Docker compose ~ LocalStack/Glue4.0 ~
https://dk521123.hatenablog.com/entry/2023/03/25/021432
WSL ~ Docker-CE + Genie / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/03/003836
Scala ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2023/03/10/193805
LinuxJDK を設定する
https://dk521123.hatenablog.com/entry/2017/08/01/234900
Visual Studio CodePythonを設定する ~
https://dk521123.hatenablog.com/entry/2019/10/24/000000
WSL2 ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2023/01/29/000000