Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS Amplify Gen2向けのVSCode拡張を作って公開してみた話/lts-tech...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
MURAKAMI Masahiko
August 31, 2024
Technology
70
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS Amplify Gen2向けのVSCode拡張を作って公開してみた話/lts-techday-2024
MURAKAMI Masahiko
August 31, 2024
More Decks by MURAKAMI Masahiko
See All by MURAKAMI Masahiko
AmplifyHostingConstructからSSRフレームワークのためのホスティング設計を考察する/amplify-hosting-construct
fossamagna
1
490
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
220
AWS Amplifyをもっと便利に使うための取り組み/amplify-tools-and-contributions
fossamagna
1
180
Amazon Verified Permissions実践入門 〜Cedar活用とAppSync導入事例/Practical Introduction to Amazon Verified Permissions
fossamagna
2
430
Amplify Gen2から知るAWS CDK Toolkit Libraryの使い方/How to use the AWS CDK Toolkit Library as known from Amplify Gen2
fossamagna
1
970
CDKアプリとしてのAmplify Gen2 - @aws-amplify/backendのアーキテクチャにみるCDKベストプラクティス -
fossamagna
3
3.7k
Amplify Gen2の 新機能と実践的な使用例 AWS Amplify Gen 2 Festival in Japan/New features and practical use cases in Amplify Gen2
fossamagna
0
870
Amplify Gen2を 拡張してみよう JAWS-UG北陸新幹線 ( 福井開催 ) 2024-04-06/Let's extend Amplify Gen2
fossamagna
0
1.1k
みんな本当に AWS Amplify を知っている?/do-you-really-know-aws-amplify
fossamagna
0
210
Other Decks in Technology
See All in Technology
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
460
紙 to デジタル
ichien178
0
370
分割40%キーボードにスムーズに入門するには
hoto17296
1
180
Oracle AI Databaseデータベース・サービス: BaseDB/ExaDB-Dの可用性
oracle4engineer
PRO
1
960
:syncing_time:
sksat
3
840
マイナンバーカード本人確認の実装比較(OAuth/OIDC Numa (Immersion) Workshop 2026) / 20260825 numa-12
oidfj
PRO
0
340
MCPを待つな、パスキーを拡げよう(OAuth/OIDC Numa (Immersion) Workshop 2026)
oidfj
PRO
0
350
信頼性はSREだけのものじゃない
hkawaras
0
300
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
dbt in Microsoft Fabric
ryomaru0825
0
300
サーバー常駐型の 簡易障害調査AI エージェントを作ってみた話
masayoshi
1
320
AWSとAzureのマルチクラウド活用における強い味方___AWS_Kiroを使った二刀流スキル作成.pdf
duelist2020jp
1
140
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
KATA
mclloyd
PRO
35
15k
Bash Introduction
62gerente
615
220k
Chasing Engaging Ingredients in Design
codingconduct
0
290
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
420
Side Projects
sachag
455
43k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
210
The Invisible Side of Design
smashingmag
301
52k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
For a Future-Friendly Web
brad_frost
183
10k
Transcript
AWS Amplify Gen2向けの VSCode拡張を作って公開し てみた話 LTS TechDay 2024 2024-08-31 株式会社永和システムマネジメント 村上雅彦
(a.k.a @fossamagna)
村上 雅彦 株式会社永和システムマネジメント Amplify Japan User Group 運営メンバー AWS Community
Builder (Front-End Web & Mobile since 2022) GitHub: https://github.com/fossamagna X(旧Twitter): https://x.com/fossamagna 自己紹介
• AWS Amplify Gen2の概要の紹介 • なぜVSCode拡張を作ったか • VSCode拡張の作り方 • VSCode拡張の公開とその後
アジェンダ
• AWS CDKをベースとする次世代のAmplifyのバックエン ド構築ツール • TypeScriptによるバックエンド定義を提供 • CoC(設定より規約を優先する) • GitのブランチとAWS環境を1:1でマッピング
• 開発者毎の独立したsandbox環境を提供 AWS Amplify Gen2
• AWS CDKをベースとする次世代のAmplifyのバックエン ド構築ツール • TypeScriptによるバックエンド定義を提供 • 開発者毎の独立したsandbox環境を提供 • GitのブランチとAWS環境を1:1でマッピング
AWS Amplify Gen2の機能
• AWS CDKをベースとする次世代のAmplifyのバックエン ド構築ツール • TypeScriptによるバックエンド定義を提供 • 開発者毎の独立した sandbox環境を提供 •
GitのブランチとAWS環境を1:1でマッピング AWS Amplify Gen2の機能
• 開発者毎の独立した sandbox環境を提供 • npx ampx sandboxコマン ド一発で環境構築完了 • hot
swapデプロイ対応で 迅速にデプロイ可能 Amplify Gen2 sandbox environments https://docs.amplify.aws/react/how-amplify-works/concepts/#faster-local-development
• sandbox環境はとっても便利 • でも、実際に利用して困った点も あった • 困った時にどう対応したかを紹 介 Amplify Gen2
sandbox environments
デプロイされたAWSリソース探すの大変問題 Amplify Gen2 sandbox environmentsで困ったこと https://docs.amplify.aws/react/deploy-and-host/sandbox-environments/setup/#manage-sandbox-environments • Amplifyの管理コンソールではsandbox環境は1行で表示されるだけで、sandbox内 のAWSリソースは確認できない。
デプロイされたAWSリソース探すの大変問題 Amplify Gen2 sandbox environmentsで困ったこと • 例えば、AppSyncのAPIも名前が同じで探しづらい。ランダム値を含むエンドポイント URLを手掛かりにして探すしかない。
対応:sandboxのAWSリソースを確認できるVSCode拡張を作成! Amplify Gen2 sandbox environmentsで困ったこと • 自分のsandbox環境のAWSリソー スにだけをツリー表示 • リソースを選択してブラウザでAWS
マネージメントコンソール可能 • https://marketplace.visualstu dio.com/items?itemName=fo ssamagna.amplify-backend-v scode&ssr=false#overview
• いつも開発で使うエディタがVSCodeだった • VSCode拡張を一度作ってみたかった • 兎に角、動いて使えるものが早く欲しかった ◦ 多くのAWSリソースを表示する必要があるのでGUIは欲しいがUIをど う見せるか、実装するかで悩みたくはなかった ◦
VSCodeが提供している拡張向けのAPIを利用するだけならUIに関 する実装が最小限で済む • 受けそうな登壇ネタが欲しかった なぜVSCode拡張として作ったか?
• VSCode拡張を作り始めるための 公式ドキュメントがある • Yeoman Generatorでプロジェク トの雛形が作れる VSCode拡張を作り始めるには?
• コントリビューションポイントを探す ◦ VSCodeの機能を拡張できるポイントがコントリビューションポイント ◦ views、commandsなど31個のコントリビューションポイントがある ◦ 実装したい機能と似た機能や他の拡張機能を探す • ドキュメントのコントリビューションポイント一覧や他の拡張機能のソース
コードが参考になる • 公式のサンプルリポジトリ https://github.com/microsoft/vscode-extension-samples に実 装サンプルが豊富にある VSCode拡張で機能を実装するには?
• Visual Studio Code Marketplaceで公開するには ◦ Azure DevOpsが必要(拡張機能をAzure DevOpsで管理する) ◦
Publisher登録が必要 ◦ vsceコマンドでパッケージ作成&公開 • Marketplaceでの見栄えをよくする(任意) ◦ package.jsonにメタ情報(アイコン画像、拡張機能の説明など)を書 く ◦ README.mdを充実させる。 ◦ CHANGELOG.mdを提供する。 VSCode拡張を公開するには?
Marketplaceに公開した結果
CHANGELOG.mdの作成 • Changesetsを採用することでgitのリリースタグとCHANGELOG.mdの 生成がコマンド1つでできるようになった
GitHub Actionsでリリースの自動化 … jobs: release: name: Release runs-on: ubuntu-latest steps:
… - name: Create Release Pull Request or Publish to the VS Code Extension Marketplace uses: changesets/action@v1 with: publish: npm run release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} VSCE_PAT: ${{ secrets.VSCE_PAT }} { "name": "amplify-backend-vscode", "publisher": "fossamagna", "scripts": { "vscode:prepublish": "npm run package", "package": "npm run check-types && npm run lint && node esbuild.js --production", "release": "npx @vscode/vsce package && npx @vscode/vsce publish --skip-duplicate && changeset tag" }, "devDependencies": { … } .github/workflows/release.yaml package.json
• 自分が欲しいものが普段の開発で使えて開発体験が 向上! • VSCode拡張を作って公開するまでの知見を得られた • CI/CDとChangesetの組み合わせを用意したことでリ リースの手間がかからず、カジュアルに新バージョン をリリースできる。 •
AWS Amplifyの開発チームのメンバーから褒められ た! VSCode拡張を作って公開してみてどうだった?