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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
MURAKAMI Masahiko
August 31, 2024
Technology
60
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
250
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
170
AWS Amplifyをもっと便利に使うための取り組み/amplify-tools-and-contributions
fossamagna
1
160
Amazon Verified Permissions実践入門 〜Cedar活用とAppSync導入事例/Practical Introduction to Amazon Verified Permissions
fossamagna
2
410
Amplify Gen2から知るAWS CDK Toolkit Libraryの使い方/How to use the AWS CDK Toolkit Library as known from Amplify Gen2
fossamagna
1
940
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
850
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
200
Other Decks in Technology
See All in Technology
OPENLOGI Company Profile for engineer
hr01
1
74k
AI時代のYAGNI:「爆速で無駄になった機能」からの学び / 20260720 Naoki Takahashi
shift_evolve
PRO
3
350
凡エンジニアがこの先生きのこるためには。〜TypeScript完全に理解したい〜
alchemy1115
2
310
Genie Ontologyは銀の弾丸かを考える / Is Genie Ontology a Silver Bullet?
nttcom
0
420
AI時代の開発生産性を捉え直す — 経営と現場をつなぐ「開発組織のオブザーバビリティ」— / AI Dev Ex Conference 2026
tkyowa
0
150
AI x 開発生産性を取り巻く予算戦略と投資対効果
i35_267
1
220
プロダクト開発組織の現在地(Ver.2026/07) / product-organization
kaonavi
0
120
Playwright × AI Agent でE2Eテストはどう変わるか AI駆動テストの可能性と実用検証の結果
taiga7543
1
510
ゴールデンパスは敷いただけでは道にならない ─ 企画部門のエンジニアが技術標準を事業価値に変えるまで
mhrtech
1
230
AIレビューはどこまで任せられるのか?自動化と人が背負うレビューの境界
sansantech
PRO
3
1.1k
Alphaモジュール使っていいのかい!?いけないのかい!?どっちなんだいっ!?
watany
1
290
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
2
4k
Featured
See All Featured
Building the Perfect Custom Keyboard
takai
2
810
Designing for Performance
lara
611
70k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.8k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
610
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
900
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.7k
How to Ace a Technical Interview
jacobian
281
24k
The Invisible Side of Design
smashingmag
301
52k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Language of Interfaces
destraynor
162
27k
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拡張を作って公開してみてどうだった?