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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
MURAKAMI Masahiko
August 31, 2024
Technology
68
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
470
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
220
AWS Amplifyをもっと便利に使うための取り組み/amplify-tools-and-contributions
fossamagna
1
170
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
なぜ Temporal の大小比較には compare しかないのか / Why Does Temporal Only Have compare() for Comparisons
kazukihayase
1
180
コーチングの奥義 何もしないテクニック
jinwatanabe
0
140
AI時代に、人は何を、どう学ぶのか #pbl_pub / What and How Do We Learn in the AI Era?
takaking22
1
180
【GCC2026】鉄拳8でのVFX開発事例
bandainamcostudios
PRO
0
120
[potatotips #96] Give Your AI Agent the Flutter Playbook
korodroid
0
120
猫付きpingコマンドを自作
uyuki234
0
280
Genie Codeハンズオン応用編
taka_aki
0
130
【書籍出版記念】 10周回って、エージェント開発は RAGがすべてだった。〜RAGの歴史と開発現場で見えた実践知〜
akiratameto
3
420
LLM Internals: 언어 모델의 계보와 알고리즘 진화 (2023~2026)
inureyes
PRO
1
800
:syncing_time:
sksat
1
100
tamachi.go 誕生の裏側
rymiyamoto
1
190
ホームラボ紹介
y_sera15
0
220
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
490
The Pragmatic Product Professional
lauravandoore
37
7.4k
Utilizing Notion as your number one productivity tool
mfonobong
4
550
Writing Fast Ruby
sferik
630
63k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
300
Color Theory Basics | Prateek | Gurzu
gurzu
0
430
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
500
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
370
The World Runs on Bad Software
bkeepers
PRO
72
12k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Design in an AI World
tapps
1
280
A Modern Web Designer's Workflow
chriscoyier
698
190k
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拡張を作って公開してみてどうだった?