2020/06/16 tsjp-azure-staticwebapps-vs_codespaces

Issei Hiraoka
Issei HiraokaCloud Solution Architect um Microsoft Japan
2020/06/16
Azure Static Web Apps と
Visual Studio Codespaces で
快適な TypeScript 環境を構築する
Issei Hiraoka / 平岡 一成 / @hoisjp
TypeScript Meetup #4; https://typescript-jp.connpass.com/event/177175/
Disclaimer: 本情報は 2020/06/16 時点の情報です。ご了承ください。
speaker: @hoisjp, hashtag: #tsjp
Issei Hiraoka / 平岡 一成
仕事は、クラウドの技術営業
日本マイクロソフト株式会社 クラウドソリューションアーキテクト
ex-楽天株式会社 サーバーサイドエンジニア
先日 6/3 に VS Code Meetup #5 で TypeScript x VS Codespaces
ハンズオンをやりましたので、そちらもご参考まで。
共著で Visual Studio Code の書籍を執筆
最後に、書籍プレゼントのお知らせあります!
About me
自己紹介
@hoisjp
hoisjp
speaker: @hoisjp, hashtag: #tsjp
1. Azure Static Web Apps
GitHub Actions + Static Web App + Azure Functions
試すならば、このコンテンツから
2. Visual Studio Codespaces
VS Code の環境をクラウドでホスト
真骨頂は、devcontainer.json & Dockerfile
More…
より踏み込んだ情報のお知らせ
書籍プレゼントのご案内
Agenda in 20 minutes
詰め込みすぎました。美味しいところだけお持ち帰りいただければと!
Azure Static Web Apps (Preview)
Build 2020 (2020/05) で待望のサービスがプレビュー開始
speaker: @hoisjp, hashtag: #tsjp
app
api
REPO
PUSH/PR ACTION
STATIC WEB APPS
API
Azure Functions
STATIC CONTENT
HTML/JavaScript/CSS
speaker: @hoisjp, hashtag: #tsjp
プレビュー期間につき、料金は無料
https://azure.microsoft.com/ja-jp/pricing/details/app-service/static/
speaker: @hoisjp, hashtag: #tsjp
速習のおすすめは、ずばりこれ
Microsoft Learn を “Static Web Apps” で検索
https://docs.microsoft.com/ja-jp/learn/browse/?term=static%20web%20apps
Azure をサンドボックス上で利用できるので、無料試用アカウントすら不要
speaker: @hoisjp, hashtag: #tsjp
Microsoft Learn で Azure Static Web Apps
https://docs.microsoft.com/ja-jp/learn/modules/publish-app-service-static-web-app-api/
speaker: @hoisjp, hashtag: #tsjp
Azure Portal で Static Web App を作成
GitHub のリポジトリとブランチ
プライベートリポジトリでOK
Step 1 Step 2
speaker: @hoisjp, hashtag: #tsjp
デモ: GitHub Actions のパイプラインでデプロイされる様子
speaker: @hoisjp, hashtag: #tsjp
プルリクエストのプレビューも自動でステージング
PR を反映させたリンクを発行
https://gentle-wave-0f5ce5e00-2.eastasia.azurestaticapps.net
“-2” は PR 番号
Docs:
https://docs.microsoft.com/ja-jp/azure/static-
web-apps/review-publish-pull-requests
speaker: @hoisjp, hashtag: #tsjp
Azure Functions ってこんな感じ
Static Web Apps では現在 JavaScript に対応 (= TypeScript OK!)
このサーバーサイドロジックが、同一ドメインである、
https://***/api から Serve される
Visual Studio Codespaces (Preview)
クラウドでホストされた Visual Studio Code 環境を提供
speaker: @hoisjp, hashtag: #tsjp
開発環境を即座に作成する
Microsoft Learn で行き届いていなかったもの
https://docs.microsoft.com/ja-jp/learn/modules/publish-app-service-static-web-app-api/
speaker: @hoisjp, hashtag: #tsjp
仕組みをざっくりと
ブラウザで使える点が注目されがちですが、Visual Studio Code からも接続可能
Azure
Visual Studio Codespaces
Browser
Local
devcontainer.json
Dockerfile
speaker: @hoisjp, hashtag: #tsjp
デモ: Codespaces を作成して起動する
speaker: @hoisjp, hashtag: #tsjp
devcontainer.json & Dockerfile
Visual Studio Codespaces で環境ができあがるからくり
.devcontainer
devcontainer.json
Dockerfile
speaker: @hoisjp, hashtag: #tsjp
{
"name": "Node.js 12 & TypeScript",
"dockerFile": "Dockerfile",
"forwardPorts": [8080],
"settings": {
"terminal.integrated.shell.linux": "/bin/bash"
},
"extensions": [
"dbaeumer.vscode-eslint",
"ms-vscode.vscode-typescript-tslint-plugin",
"eamodio.gitlens",
"ms-azuretools.vscode-docker",
"ms-azuretools.vscode-azurefunctions",
"ms-azuretools.vscode-azurestaticwebapps"
],
// "postCreateCommand": "yarn install",
"remoteUser": "node"
}
.devcontainer/devcontainer.json
forwardPorts
ポートフォワーディングするポート番号
extensions
インストールする拡張機能を指定
チームに半強制的に拡張を展開できる
remoteUser
指定しない場合、root ユーザでログイン
指定しておくべき
詳細参考
https://code.visualstudio.com/docs/remo
te/containers
speaker: @hoisjp, hashtag: #tsjp
FROM mcr.microsoft.com/azure-functions/node:3.0-node12-core-tools
ARG USERNAME=node
ARG USER_UID=1000
ARG USER_GID=$USER_UID
RUN if [ "$USER_GID" != "1000" ] || [ "$USER_UID" != "1000" ]; then
¥
groupmod --gid $USER_GID $USERNAME ¥
&& usermod --uid $USER_UID --gid $USER_GID $USERNAME ¥
&& chmod -R $USER_UID:$USER_GID /home/$USERNAME ¥
&& chmod -R $USER_UID:root /usr/local/share/nvm
/usr/local/share/npm-global; ¥
fi ¥
# Install eslint, typescript. eslint is installed by javascript
image
&& sudo -u ${USERNAME} npm install -g eslint typescript
.devcontainer/Dockerfile
FROM
ここでは、Azure Functions 用に
Functions Core Tools がインストールされ
たイメージをベースに、TypeScriptを追加
extensions
インストールする拡張機能を指定
remoteUser
指定しない場合、root ユーザで
詳細参考
https://code.visualstudio.com/docs/remo
te/containers
speaker: @hoisjp, hashtag: #tsjp
devcontainer.json & Dockerfile
サンプルは豊富にあるので、これらをベースに味付けするのが楽
https://github.com/microsoft/vscode-dev-containers
https://github.com/microsoft/vscode-dev-containers/tree/master/containers から、下記は抜粋
speaker: @hoisjp, hashtag: #tsjp
devcontainer & Dockerfile でリモート開発環境
ローカルの Docker コンテナで、同じ環境設定を使う(もともとこちらが先にリリースされていた)
Azure
Visual Studio Codespaces
Browser
Local
devcontainer.json
Dockerfile
speaker: @hoisjp, hashtag: #tsjp
Remote-Containers でローカルの Docker 環境
devcontainer.json と Dockerfile はそのまま活用
speaker: @hoisjp, hashtag: #tsjp
インスタンスは現在3種類
https://azure.microsoft.com/en-us/pricing/details/visual-studio-online/
speaker: @hoisjp, hashtag: #tsjp
Basic (2 cores, 4GB RAM, 64 GB SSD)
• npm install: added 1430 packages from 911 contributors and audited 1500 packages in 31.525s
• npm run serve: Compiled successfully in 7385ms
Standard (4 cores, 8 GB RAM, 64 GB SSD)
• npm install: … in 23.444s
• npm run serve: … in 5782ms
Premium (8 cores, 16 GB RAM, 64 GB SSD)
• npm install: … in 21.495s
• npm run serve: ... in 5316ms
Info: インスタンスタイプでどれほど違うものか
Vue の npm install と npm run serve でベンチマーク
ちなみに、いずれの CPU も、
$ cat /proc/cpuinfo
…
cpu family : 6
model : 85
model name : Intel(R) Xeon(R) Platinum
8168 CPU @ 2.70GHz
…
cpu MHz : 2693.762
cache size : 33792 KB
speaker: @hoisjp, hashtag: #tsjp
Tips: dotfiles で各自のパーソナライズ
https://docs.microsoft.com/en-us/visualstudio/online/reference/personalizing
.devcontainer/* でチーム共通の環境を整えつつ、
dotfiles でそれぞれのお好み設定を。
e.g. bash などの設定
⇒共通の環境を汚さずに、各自のパーソナライズが可能
speaker: @hoisjp, hashtag: #tsjp
GitHub Codespaces が Private Preview 中(期待!)
https://github.com/features/codespaces/
More…
speaker: @hoisjp, hashtag: #tsjp
Microsoft Docs 公式ドキュメント
https://aka.ms/swadocs
John Papa’s blog; more samples
https://johnpapa.net/static-web-apps-first-look/
Preview 中につき、フィードバック歓迎
https://github.com/Azure/static-web-apps
GitHub Actions の実体
https://github.com/Azure/static-web-apps-deploy
もっと詳しく知りたいかたへ ( 1 )
Subtitle (if needed)
speaker: @hoisjp, hashtag: #tsjp
もっと詳しく知りたいかたへ ( 2 )
6/17 (水) から de:code 2020 というオンラインイベントがございまして
https://www.microsoft.com/ja-jp/events/decode/2020session/detail.aspx?sid=A14
speaker: @hoisjp, hashtag: #tsjp
応募条件
- Visual Studio Code が大好きであること
(プログラマでなくてもOK!愛する気持ちが大事です)
- 発送先住所(オフィス or 自宅)をご連絡いただけるかた
- ブログまたはSNSなどでレビューをいただけるかた
応募締め切りと当選ご連絡について
配信完了の時間を目途に応募締め切りとさせていただきまして、
当選されたかた2名へ 6/23(火)までに、
別途ご連絡さしあげます。
プログラマーのための Visual Studio Code の教科書
プレゼント企画 from マイナビ出版様
https://bit.ly/vscodebook
Thank you!
1 von 31

Recomendados

Github codespaces すごく良い。もうこれで 十分なんじゃという話 von
Github codespaces すごく良い。もうこれで 十分なんじゃという話Github codespaces すごく良い。もうこれで 十分なんじゃという話
Github codespaces すごく良い。もうこれで 十分なんじゃという話xiidec
654 views12 Folien
ASP.NET Core のお気に入りの機能たち (docker向け) von
ASP.NET Core のお気に入りの機能たち (docker向け)ASP.NET Core のお気に入りの機能たち (docker向け)
ASP.NET Core のお気に入りの機能たち (docker向け)Takayoshi Tanaka
2.6K views42 Folien
Visual studio extensibility von
Visual studio extensibilityVisual studio extensibility
Visual studio extensibilityTakeshi Fujimoto
855 views38 Folien
Android アプリ開発における Gradle ビルドシステム von
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムYu Nobuoka
7.5K views31 Folien
Bicep + VS Code で楽々Azure Deploy von
Bicep + VS Code で楽々Azure DeployBicep + VS Code で楽々Azure Deploy
Bicep + VS Code で楽々Azure DeployTakekazu Omi
847 views17 Folien
Write slides and books in VSCode + Markdown von
Write slides and books in VSCode + MarkdownWrite slides and books in VSCode + Markdown
Write slides and books in VSCode + Markdownロフト くん
740 views24 Folien

Más contenido relacionado

Was ist angesagt?

AndroidStudioはじめました ~Gradle編~ von
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~Yabata Tomomitsu
5K views44 Folien
VSCode Conference Japan 2021 kyusque von
VSCode Conference Japan 2021 kyusqueVSCode Conference Japan 2021 kyusque
VSCode Conference Japan 2021 kyusquekyusque
656 views16 Folien
Windows コンテナを AKS に追加する von
Windows コンテナを AKS に追加するWindows コンテナを AKS に追加する
Windows コンテナを AKS に追加するYuto Takei
1.7K views38 Folien
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説 von
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説Takao Tetsuro
492 views80 Folien
bicep dev container von
bicep dev containerbicep dev container
bicep dev containerTakekazu Omi
505 views12 Folien
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017 von
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Kohei Saito
12.5K views27 Folien

Was ist angesagt?(20)

AndroidStudioはじめました ~Gradle編~ von Yabata Tomomitsu
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~
Yabata Tomomitsu5K views
VSCode Conference Japan 2021 kyusque von kyusque
VSCode Conference Japan 2021 kyusqueVSCode Conference Japan 2021 kyusque
VSCode Conference Japan 2021 kyusque
kyusque656 views
Windows コンテナを AKS に追加する von Yuto Takei
Windows コンテナを AKS に追加するWindows コンテナを AKS に追加する
Windows コンテナを AKS に追加する
Yuto Takei1.7K views
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説 von Takao Tetsuro
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
Takao Tetsuro492 views
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017 von Kohei Saito
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Kohei Saito12.5K views
The Twelve-Factor (A|M)pp with C# von Yuta Matsumura
The Twelve-Factor (A|M)pp with C#The Twelve-Factor (A|M)pp with C#
The Twelve-Factor (A|M)pp with C#
Yuta Matsumura569 views
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して von Akira Inoue
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
.NET の今と未来 ~ デバイス&クラウド ネイティブを目指して
Akira Inoue2.6K views
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証 von Yuta Matsumura
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
ASP.NET CoreとAzure AD B2Cを使ったサクっと認証
Yuta Matsumura4.1K views
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ von de:code 2017
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
[DO02] Jenkins PipelineとBlue Oceanによる、フルスクラッチからの継続的デリバリ
de:code 20176.6K views
GitとCIとかチャットとかをオンプレで運用する話 von mdome
GitとCIとかチャットとかをオンプレで運用する話GitとCIとかチャットとかをオンプレで運用する話
GitとCIとかチャットとかをオンプレで運用する話
mdome5.2K views
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API von Kohei Saito
RESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open APIRESTful API (JAX-RS) 書くだけで仕様書も自動で作られていく話 with MicroProfile Open API
RESTful API (JAX-RS) 書くだけで仕様書も 自動で作られていく話 with MicroProfile Open API
Kohei Saito2.6K views
How to create your own Azure Pipeline's image von Kazushi Kamegawa
How to create your own Azure Pipeline's imageHow to create your own Azure Pipeline's image
How to create your own Azure Pipeline's image
Kazushi Kamegawa921 views
スッとGoを取り入れる von Yusuke Wada
スッとGoを取り入れるスッとGoを取り入れる
スッとGoを取り入れる
Yusuke Wada23.5K views
[社内勉強会]Gradleを使おう von hirooooo
[社内勉強会]Gradleを使おう[社内勉強会]Gradleを使おう
[社内勉強会]Gradleを使おう
hirooooo 2.9K views
.NET アプリを改善して実践する継続的インテグレーション von Yuta Matsumura
.NET アプリを改善して実践する継続的インテグレーション.NET アプリを改善して実践する継続的インテグレーション
.NET アプリを改善して実践する継続的インテグレーション
Yuta Matsumura331 views
Multibranch Pipeline with Docker 入門編 von kimulla
Multibranch Pipeline with Docker 入門編Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
kimulla4.4K views

Similar a 2020/06/16 tsjp-azure-staticwebapps-vs_codespaces

ゆるふわAzure Functions von
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure FunctionsKeiji Kamebuchi
221 views63 Folien
Goで作って配布するAzureコマンドラインユーティリティ von
Goで作って配布するAzureコマンドラインユーティリティGoで作って配布するAzureコマンドラインユーティリティ
Goで作って配布するAzureコマンドラインユーティリティyaegashi
226 views16 Folien
13016 n分で作るtype scriptでnodejs von
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
2.3K views27 Folien
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた von
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた
【de:code 2020】 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた日本マイクロソフト株式会社
304 views20 Folien
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力 von
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
6.6K views98 Folien
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26) von
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)Masanori Ishigami
752 views126 Folien

Similar a 2020/06/16 tsjp-azure-staticwebapps-vs_codespaces(20)

Goで作って配布するAzureコマンドラインユーティリティ von yaegashi
Goで作って配布するAzureコマンドラインユーティリティGoで作って配布するAzureコマンドラインユーティリティ
Goで作って配布するAzureコマンドラインユーティリティ
yaegashi226 views
13016 n分で作るtype scriptでnodejs von Takayoshi Tanaka
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka2.3K views
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力 von ThinReports
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports6.6K views
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26) von Masanori Ishigami
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
[使い倒し]GitHubのIssueとTFS/VSOのWorkItem連動に挑む(2015/08/26)
Masanori Ishigami752 views
Power shell で DSL von urasandesu
Power shell で DSLPower shell で DSL
Power shell で DSL
urasandesu5K views
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう! von 泰史 栃折
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型PDS「Personium」を使ってみよう!
泰史 栃折1.3K views
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える von david9142
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考えるNetラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
Netラボ2012年6月勉強会 マイクロソフトのオープンソース戦略を考える
david91422.2K views
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ! von Yasuaki Matsuda
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Yasuaki Matsuda241 views
VSCodeで始めるAzure Static Web Apps開発 von Yuta Matsumura
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura987 views
de:code 2019 Cloud トラック 総まとめ! von Minoru Naito
de:code 2019 Cloud トラック 総まとめ!de:code 2019 Cloud トラック 総まとめ!
de:code 2019 Cloud トラック 総まとめ!
Minoru Naito1K views
Swaggerを利用した新規サービス開発 von recotech
Swaggerを利用した新規サービス開発Swaggerを利用した新規サービス開発
Swaggerを利用した新規サービス開発
recotech9.9K views
2014年を振り返る 今年の技術トレンドとDockerについて von Masahito Zembutsu
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu48.1K views
.NETの自作ツール公開手段 von Pierre3 小林
.NETの自作ツール公開手段.NETの自作ツール公開手段
.NETの自作ツール公開手段
Pierre3 小林189 views
シラサギハンズオン 1015 1016 von Yu Ito
シラサギハンズオン 1015 1016シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016
Yu Ito3.2K views
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用 von de:code 2017
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
de:code 2017996 views
Introduction to extensions and other useful features for developing apps usin... von Shotaro Suzuki
Introduction to extensions and other useful features for developing apps usin...Introduction to extensions and other useful features for developing apps usin...
Introduction to extensions and other useful features for developing apps usin...
Shotaro Suzuki202 views
[AWSマイスターシリーズ] AWS SDK for PHP / Ruby / boto(Python) / JavaScript in Node.js von Amazon Web Services Japan
[AWSマイスターシリーズ] AWS SDK for PHP / Ruby / boto(Python) / JavaScript in Node.js[AWSマイスターシリーズ] AWS SDK for PHP / Ruby / boto(Python) / JavaScript in Node.js
[AWSマイスターシリーズ] AWS SDK for PHP / Ruby / boto(Python) / JavaScript in Node.js

Más de Issei Hiraoka

Infra as Code in Azure von
Infra as Code in AzureInfra as Code in Azure
Infra as Code in AzureIssei Hiraoka
992 views17 Folien
2021/03/19 パブリッククラウドを活かす運用プロセス自動化 von
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化Issei Hiraoka
360 views26 Folien
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring von
Visual Studio Code のこれまでとこれから at OSC 2021 Online/SpringVisual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/SpringIssei Hiraoka
1.7K views34 Folien
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト von
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェストIssei Hiraoka
647 views27 Folien
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ von
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
2020/12/03 SaaS を正しい方向へ加速するフィードバックループIssei Hiraoka
225 views23 Folien
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020 von
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020Issei Hiraoka
390 views34 Folien

Más de Issei Hiraoka(20)

2021/03/19 パブリッククラウドを活かす運用プロセス自動化 von Issei Hiraoka
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
Issei Hiraoka360 views
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring von Issei Hiraoka
Visual Studio Code のこれまでとこれから at OSC 2021 Online/SpringVisual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Issei Hiraoka1.7K views
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト von Issei Hiraoka
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
Issei Hiraoka647 views
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ von Issei Hiraoka
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
Issei Hiraoka225 views
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020 von Issei Hiraoka
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020
アプリケーションエンジニアへのいちおし Azure Update at Microsoft Ignite 2020
Issei Hiraoka390 views
Five Steps to Culture Change を日本語で解説する 2020/11/06 von Issei Hiraoka
Five Steps to Culture Change を日本語で解説する 2020/11/06Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06
Issei Hiraoka216 views
20201015 Azure PaaS Update at Microsoft Ignite 2020 von Issei Hiraoka
20201015 Azure PaaS Update at Microsoft Ignite 202020201015 Azure PaaS Update at Microsoft Ignite 2020
20201015 Azure PaaS Update at Microsoft Ignite 2020
Issei Hiraoka814 views
20201008 GitHub at Microsoft von Issei Hiraoka
20201008 GitHub at Microsoft20201008 GitHub at Microsoft
20201008 GitHub at Microsoft
Issei Hiraoka226 views
Azure Update Summary (App) 202008 von Issei Hiraoka
Azure Update Summary (App) 202008Azure Update Summary (App) 202008
Azure Update Summary (App) 202008
Issei Hiraoka940 views
20191031 Arakawa Camera on Azure CDN for Typhoon Hagibis von Issei Hiraoka
20191031 Arakawa Camera on Azure CDN for Typhoon Hagibis20191031 Arakawa Camera on Azure CDN for Typhoon Hagibis
20191031 Arakawa Camera on Azure CDN for Typhoon Hagibis
Issei Hiraoka3.4K views
20190731 Azure Functions x Line at Azure Tech Lab #4 von Issei Hiraoka
20190731 Azure Functions x Line at Azure Tech Lab #420190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #4
Issei Hiraoka5.4K views
20190626 Get Started Azure Container Registry von Issei Hiraoka
20190626 Get Started Azure Container Registry20190626 Get Started Azure Container Registry
20190626 Get Started Azure Container Registry
Issei Hiraoka702 views
de:code 2019 DT06 vs-show どっちのVSショー von Issei Hiraoka
de:code 2019 DT06 vs-show どっちのVSショーde:code 2019 DT06 vs-show どっちのVSショー
de:code 2019 DT06 vs-show どっちのVSショー
Issei Hiraoka978 views
20190522 Azure Tech Lab Build 2019 recap von Issei Hiraoka
20190522 Azure Tech Lab Build 2019 recap20190522 Azure Tech Lab Build 2019 recap
20190522 Azure Tech Lab Build 2019 recap
Issei Hiraoka365 views
20190514 Smart Store - Azure servlerless architecture von Issei Hiraoka
20190514 Smart Store - Azure servlerless architecture20190514 Smart Store - Azure servlerless architecture
20190514 Smart Store - Azure servlerless architecture
Issei Hiraoka356 views
DevOps on Azure Kubernetes von Issei Hiraoka
DevOps on Azure KubernetesDevOps on Azure Kubernetes
DevOps on Azure Kubernetes
Issei Hiraoka3.1K views
20190201 Cloud Native Kansai AKS Azure von Issei Hiraoka
20190201 Cloud Native Kansai AKS Azure20190201 Cloud Native Kansai AKS Azure
20190201 Cloud Native Kansai AKS Azure
Issei Hiraoka1.7K views
App Service x Jenkins 20171003 von Issei Hiraoka
App Service x Jenkins 20171003App Service x Jenkins 20171003
App Service x Jenkins 20171003
Issei Hiraoka2.1K views
Azure Automation in 10 minutes - 2017/06/30 Ansible on Azure 入門 von Issei Hiraoka
Azure Automation in 10 minutes - 2017/06/30 Ansible on Azure 入門Azure Automation in 10 minutes - 2017/06/30 Ansible on Azure 入門
Azure Automation in 10 minutes - 2017/06/30 Ansible on Azure 入門
Issei Hiraoka2K views

2020/06/16 tsjp-azure-staticwebapps-vs_codespaces

  • 1. 2020/06/16 Azure Static Web Apps と Visual Studio Codespaces で 快適な TypeScript 環境を構築する Issei Hiraoka / 平岡 一成 / @hoisjp TypeScript Meetup #4; https://typescript-jp.connpass.com/event/177175/ Disclaimer: 本情報は 2020/06/16 時点の情報です。ご了承ください。
  • 2. speaker: @hoisjp, hashtag: #tsjp Issei Hiraoka / 平岡 一成 仕事は、クラウドの技術営業 日本マイクロソフト株式会社 クラウドソリューションアーキテクト ex-楽天株式会社 サーバーサイドエンジニア 先日 6/3 に VS Code Meetup #5 で TypeScript x VS Codespaces ハンズオンをやりましたので、そちらもご参考まで。 共著で Visual Studio Code の書籍を執筆 最後に、書籍プレゼントのお知らせあります! About me 自己紹介 @hoisjp hoisjp
  • 3. speaker: @hoisjp, hashtag: #tsjp 1. Azure Static Web Apps GitHub Actions + Static Web App + Azure Functions 試すならば、このコンテンツから 2. Visual Studio Codespaces VS Code の環境をクラウドでホスト 真骨頂は、devcontainer.json & Dockerfile More… より踏み込んだ情報のお知らせ 書籍プレゼントのご案内 Agenda in 20 minutes 詰め込みすぎました。美味しいところだけお持ち帰りいただければと!
  • 4. Azure Static Web Apps (Preview) Build 2020 (2020/05) で待望のサービスがプレビュー開始
  • 5. speaker: @hoisjp, hashtag: #tsjp app api REPO PUSH/PR ACTION STATIC WEB APPS API Azure Functions STATIC CONTENT HTML/JavaScript/CSS
  • 6. speaker: @hoisjp, hashtag: #tsjp プレビュー期間につき、料金は無料 https://azure.microsoft.com/ja-jp/pricing/details/app-service/static/
  • 7. speaker: @hoisjp, hashtag: #tsjp 速習のおすすめは、ずばりこれ Microsoft Learn を “Static Web Apps” で検索 https://docs.microsoft.com/ja-jp/learn/browse/?term=static%20web%20apps Azure をサンドボックス上で利用できるので、無料試用アカウントすら不要
  • 8. speaker: @hoisjp, hashtag: #tsjp Microsoft Learn で Azure Static Web Apps https://docs.microsoft.com/ja-jp/learn/modules/publish-app-service-static-web-app-api/
  • 9. speaker: @hoisjp, hashtag: #tsjp Azure Portal で Static Web App を作成 GitHub のリポジトリとブランチ プライベートリポジトリでOK Step 1 Step 2
  • 10. speaker: @hoisjp, hashtag: #tsjp デモ: GitHub Actions のパイプラインでデプロイされる様子
  • 11. speaker: @hoisjp, hashtag: #tsjp プルリクエストのプレビューも自動でステージング PR を反映させたリンクを発行 https://gentle-wave-0f5ce5e00-2.eastasia.azurestaticapps.net “-2” は PR 番号 Docs: https://docs.microsoft.com/ja-jp/azure/static- web-apps/review-publish-pull-requests
  • 12. speaker: @hoisjp, hashtag: #tsjp Azure Functions ってこんな感じ Static Web Apps では現在 JavaScript に対応 (= TypeScript OK!) このサーバーサイドロジックが、同一ドメインである、 https://***/api から Serve される
  • 13. Visual Studio Codespaces (Preview) クラウドでホストされた Visual Studio Code 環境を提供
  • 14. speaker: @hoisjp, hashtag: #tsjp 開発環境を即座に作成する Microsoft Learn で行き届いていなかったもの https://docs.microsoft.com/ja-jp/learn/modules/publish-app-service-static-web-app-api/
  • 15. speaker: @hoisjp, hashtag: #tsjp 仕組みをざっくりと ブラウザで使える点が注目されがちですが、Visual Studio Code からも接続可能 Azure Visual Studio Codespaces Browser Local devcontainer.json Dockerfile
  • 16. speaker: @hoisjp, hashtag: #tsjp デモ: Codespaces を作成して起動する
  • 17. speaker: @hoisjp, hashtag: #tsjp devcontainer.json & Dockerfile Visual Studio Codespaces で環境ができあがるからくり .devcontainer devcontainer.json Dockerfile
  • 18. speaker: @hoisjp, hashtag: #tsjp { "name": "Node.js 12 & TypeScript", "dockerFile": "Dockerfile", "forwardPorts": [8080], "settings": { "terminal.integrated.shell.linux": "/bin/bash" }, "extensions": [ "dbaeumer.vscode-eslint", "ms-vscode.vscode-typescript-tslint-plugin", "eamodio.gitlens", "ms-azuretools.vscode-docker", "ms-azuretools.vscode-azurefunctions", "ms-azuretools.vscode-azurestaticwebapps" ], // "postCreateCommand": "yarn install", "remoteUser": "node" } .devcontainer/devcontainer.json forwardPorts ポートフォワーディングするポート番号 extensions インストールする拡張機能を指定 チームに半強制的に拡張を展開できる remoteUser 指定しない場合、root ユーザでログイン 指定しておくべき 詳細参考 https://code.visualstudio.com/docs/remo te/containers
  • 19. speaker: @hoisjp, hashtag: #tsjp FROM mcr.microsoft.com/azure-functions/node:3.0-node12-core-tools ARG USERNAME=node ARG USER_UID=1000 ARG USER_GID=$USER_UID RUN if [ "$USER_GID" != "1000" ] || [ "$USER_UID" != "1000" ]; then ¥ groupmod --gid $USER_GID $USERNAME ¥ && usermod --uid $USER_UID --gid $USER_GID $USERNAME ¥ && chmod -R $USER_UID:$USER_GID /home/$USERNAME ¥ && chmod -R $USER_UID:root /usr/local/share/nvm /usr/local/share/npm-global; ¥ fi ¥ # Install eslint, typescript. eslint is installed by javascript image && sudo -u ${USERNAME} npm install -g eslint typescript .devcontainer/Dockerfile FROM ここでは、Azure Functions 用に Functions Core Tools がインストールされ たイメージをベースに、TypeScriptを追加 extensions インストールする拡張機能を指定 remoteUser 指定しない場合、root ユーザで 詳細参考 https://code.visualstudio.com/docs/remo te/containers
  • 20. speaker: @hoisjp, hashtag: #tsjp devcontainer.json & Dockerfile サンプルは豊富にあるので、これらをベースに味付けするのが楽 https://github.com/microsoft/vscode-dev-containers https://github.com/microsoft/vscode-dev-containers/tree/master/containers から、下記は抜粋
  • 21. speaker: @hoisjp, hashtag: #tsjp devcontainer & Dockerfile でリモート開発環境 ローカルの Docker コンテナで、同じ環境設定を使う(もともとこちらが先にリリースされていた) Azure Visual Studio Codespaces Browser Local devcontainer.json Dockerfile
  • 22. speaker: @hoisjp, hashtag: #tsjp Remote-Containers でローカルの Docker 環境 devcontainer.json と Dockerfile はそのまま活用
  • 23. speaker: @hoisjp, hashtag: #tsjp インスタンスは現在3種類 https://azure.microsoft.com/en-us/pricing/details/visual-studio-online/
  • 24. speaker: @hoisjp, hashtag: #tsjp Basic (2 cores, 4GB RAM, 64 GB SSD) • npm install: added 1430 packages from 911 contributors and audited 1500 packages in 31.525s • npm run serve: Compiled successfully in 7385ms Standard (4 cores, 8 GB RAM, 64 GB SSD) • npm install: … in 23.444s • npm run serve: … in 5782ms Premium (8 cores, 16 GB RAM, 64 GB SSD) • npm install: … in 21.495s • npm run serve: ... in 5316ms Info: インスタンスタイプでどれほど違うものか Vue の npm install と npm run serve でベンチマーク ちなみに、いずれの CPU も、 $ cat /proc/cpuinfo … cpu family : 6 model : 85 model name : Intel(R) Xeon(R) Platinum 8168 CPU @ 2.70GHz … cpu MHz : 2693.762 cache size : 33792 KB
  • 25. speaker: @hoisjp, hashtag: #tsjp Tips: dotfiles で各自のパーソナライズ https://docs.microsoft.com/en-us/visualstudio/online/reference/personalizing .devcontainer/* でチーム共通の環境を整えつつ、 dotfiles でそれぞれのお好み設定を。 e.g. bash などの設定 ⇒共通の環境を汚さずに、各自のパーソナライズが可能
  • 26. speaker: @hoisjp, hashtag: #tsjp GitHub Codespaces が Private Preview 中(期待!) https://github.com/features/codespaces/
  • 28. speaker: @hoisjp, hashtag: #tsjp Microsoft Docs 公式ドキュメント https://aka.ms/swadocs John Papa’s blog; more samples https://johnpapa.net/static-web-apps-first-look/ Preview 中につき、フィードバック歓迎 https://github.com/Azure/static-web-apps GitHub Actions の実体 https://github.com/Azure/static-web-apps-deploy もっと詳しく知りたいかたへ ( 1 ) Subtitle (if needed)
  • 29. speaker: @hoisjp, hashtag: #tsjp もっと詳しく知りたいかたへ ( 2 ) 6/17 (水) から de:code 2020 というオンラインイベントがございまして https://www.microsoft.com/ja-jp/events/decode/2020session/detail.aspx?sid=A14
  • 30. speaker: @hoisjp, hashtag: #tsjp 応募条件 - Visual Studio Code が大好きであること (プログラマでなくてもOK!愛する気持ちが大事です) - 発送先住所(オフィス or 自宅)をご連絡いただけるかた - ブログまたはSNSなどでレビューをいただけるかた 応募締め切りと当選ご連絡について 配信完了の時間を目途に応募締め切りとさせていただきまして、 当選されたかた2名へ 6/23(火)までに、 別途ご連絡さしあげます。 プログラマーのための Visual Studio Code の教科書 プレゼント企画 from マイナビ出版様 https://bit.ly/vscodebook