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
MURAKAMI Masahiko
August 31, 2024
Technology
72
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
530
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
230
AWS Amplifyをもっと便利に使うための取り組み/amplify-tools-and-contributions
fossamagna
1
180
Amazon Verified Permissions実践入門 〜Cedar活用とAppSync導入事例/Practical Introduction to Amazon Verified Permissions
fossamagna
2
440
Amplify Gen2から知るAWS CDK Toolkit Libraryの使い方/How to use the AWS CDK Toolkit Library as known from Amplify Gen2
fossamagna
1
980
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
880
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
Beyond the Hype: Practical AI for Your Oracle Database with MCP
thatjeffsmith
1
290
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
600
こんなアーキテクチャ図は嫌だ BEYOND THE TIME: 半年後の自分へ贈る15のメッセージ / 15 of Anti-pattern in AWS Architecture Diagrams
naospon
3
270
【視聴者参加型!】AWSセキュリティアンチパターンクイズ
syoshie
0
460
少人数データチームのDevin活用実践事例
runandy16
2
450
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
190
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
150
Bet AI Day 2026丨Agentは、「金融」という巨大産業の何を変えられるのか
layerx
PRO
0
1.2k
Autonomous AI Databaseサービス・アップデート(FY27)/ adb-service-update-jp-fy27
oracle4engineer
PRO
0
130
推論の観測、できていますか? 〜 Google Cloud Gemini Enterprise Agent Platformで 3つの Gemini モデルを実測して踏んだ、評価の罠 〜
shukob
PRO
0
180
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
0
190
AIに丸投げしないトイル削減 / Eliminating Toil Without Leaving It All to AI
kohbis
3
1k
Featured
See All Featured
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
470
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
sira's awesome portfolio website redesign presentation
elsirapls
0
410
Mind Mapping
helmedeiros
1
350
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
190
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Building Applications with DynamoDB
mza
96
7.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
The SEO identity crisis: Don't let AI make you average
varn
0
550
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拡張を作って公開してみてどうだった?