Skip to content

AWS SAA ガイドの Next.js 移行推進と GCP ハンズオンガイドのルーティング再構造化・UI/a11y 最適化 - #114

Merged
myoshi2891 merged 116 commits into
mainfrom
dev
Jul 29, 2026
Merged

myoshi2891 merged 116 commits into
mainfrom
dev

Conversation

@myoshi2891

@myoshi2891 myoshi2891 commented Jul 24, 2026 •

Copy link
Copy Markdown
Owner

概要サマリー

この期間における主な変更は、AWS Certified Solutions Architect – Associate (SAA-C03) の試験対策コンテンツの Next.js App Router への全面的な移植・UI刷新と、GCP (ACE) ハンズオン学習ガイド群のディレクトリ構成・ルーティングの再構造化 (app/gcl/hands-on/ 配下への集約) です。 また、Mermaid ダイアグラムのフォントスケール最適化(1rem保持)やモバイルナビゲーションのアクセシビリティ向上、コードブロックのスタイリング強化など、サイト全体の品質向上が行われています。


カテゴリ別詳細

1. AWS SAA (Solutions Architect – Associate) 完全ガイドの移行と UI 刷新

  • Domain 1〜3 の Next.js 移行 (TDDアプローチ):
    • AWS SAA のトップページ、Domain 1 (デザイン設計)、Domain 2 (高性能アーキテクチャ)、Domain 3 (高信頼性・セキュア設計) を App Router コンポーネントへ順次完全移植。
    • 各ドメインの移行完了に伴い MIGRATION_PROGRESS.md の更新および元 HTML/MD ファイルのアーカイブを実施。
  • コンポーネント・UI デザインの改善:
    • ドメインの割合を示すドーナツチャート (SVG) やリファレンスカードのデザイン刷新。
    • メインコンテンツのレイアウトをフルサイズに拡大し、パイチャートの配色調整やリファレンスカードの表示を洗練化。
    • コードブロックの構文ハイライト・インデント構造の適用。
  • 新規学習資料の追加:
    • AWS SAA Domain 3 / Domain 4 の学習用ドキュメントおよび素材の追加。

2. GCP / ACE ハンズオンガイド群の再構造化と統合

  • ハンズオンルートへの集約 (/app/gcl/hands-on/):
    • cloud-load-balancing-guide, develop-your-gcp-network, build-a-secure-google-cloud-network, set-up-an-app-dev-environment-on-google-cloud, gcp-security-fundamentals-guide 等の各種ハンズオンを app/gcl/hands-on/ ディレクトリ配下に再配置・統合。
  • ナビゲーションとデータモデルの強化:
    • ハンズオンのグループ化に伴い、EXAMS 定数およびナビゲーション生成処理 (toNavTree) を更新。
    • カスタム overviewLabel (例: IAP TCP Forwarding) の定義をサポートし、ドロワー/ハンバーガーメニューの表示を最適化。
  • IAP / Security Fundamentals ガイドの移植:
    • IAP TCP フォワーディングガイドおよび GCP セキュリティファンダメンタルズガイドの全コンテンツ、CSS、Mermaid ダイアグラムを移植。

3. Mermaid ダイアグラム・CSS テーマ・アクセシビリティの最適化

  • Mermaid ダイアグラムの文字サイズ固定 (1rem Scale):
    • コンポーネントに preserveNaturalScale={true} や横スクロール可能なコンテナ (overflow-x: auto) を追加し、図内のテキストが縮小されず視認性を維持するよう改善。
  • デザイン・トークンの共通化:
    • GCP / IAP / AWS 各ガイド間でのダークテーマ用 CSS トークンやフォント・カラー変数を集約・共有化。
  • アクセシビリティ (a11y) & エラー修正:
    • モバイルサイドバーの aria-expanded / aria-controls 属性、フォーカス制御、Visually Hidden ラベルの調整。
    • Mermaid 読込時の Promise Rejection ハンドリング、JSX 内のコメントノード・インデックスシグネチャの型定義エラーの修正。

4. ドキュメント・資料・その他の修正

  • CompTIA Network+ (ドメイン4 ネットワークセキュリティ・トラブルシューティング) および CCNA (インフラ・自動化) 関連ガイドの追加と調整。
  • README.md やプロジェクト構造マニュアルの重複記述削除と最新パスへの追従。

@netlify

netlify Bot commented Jul 24, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for cloud-infrastructure-studies ready!

Name Link
🔨 Latest commit 28d3403
🔍 Latest deploy log https://app.netlify.com/projects/cloud-infrastructure-studies/deploys/6a6998f2efd6410008504b46
😎 Deploy Preview https://deploy-preview-114--cloud-infrastructure-studies.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@coderabbitai

coderabbitai Bot commented Jul 24, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • ✅ Review completed - (🔄 Check again to review again)
📝 Walkthrough

Walkthrough

CCNA、CompTIA Network+、AWS、Google Cloud向けの教材とWebページを追加し、Mermaid図、レスポンシブ目次、スクロール連動、Reactページ、公開制御、テスト、移行記録を整備しました。

Changes

学習教材と静的HTML

Layer / File(s) Summary
資格教材の追加
Comptia-*.md, Ccna-*.md, AWS-Certified-*.md, Iap-*.md, Gcp-bastion-*.md
各資格の試験範囲、手順、比較表、図解、コード例、参考資料をMarkdownへ追加しました。
静的HTMLガイド
*.html, archive/**/*.html
学習本文、固定目次、レスポンシブレイアウト、Mermaid描画、モバイルメニュー、スクロール連動を含むHTMLページを追加しました。

AWSおよびGoogle CloudのReactページ

Layer / File(s) Summary
AWS SAAページ
app/aws/solutions-architect-associate/**/*
SAA総合ガイドとDomain 1〜3ページ、図定義、目次、進捗表示、コードコピー、参考資料、ページスタイルを追加しました。
Google Cloudハンズオンページ
app/gcl/hands-on/**/*
ネットワーク、セキュリティ、アプリ開発環境、IAP TCPフォワーディングのガイド、図定義、目次、ページスタイルを追加しました。
共通表示基盤
app/globals.css, components/MermaidDiagram.module.css
ガイド用テーマ色、ハンズオン用アイコンテーマ、Mermaid表示領域のスタイルを更新しました。

統合、公開制御、検証

Layer / File(s) Summary
ナビゲーションと公開データ
app/constants.ts, app/navigation.ts, lib/featureFlags.ts, app/gcl/hands-on/layout.tsx
試験概要ラベル、hands-on試験、AWS SAAドメイン、環境変数による公開制御、404レイアウトを追加しました。
テストと移行記録
__tests__/**/*, CLAUDE.md, GEMINI.md, MIGRATION_PROGRESS.md, netlify.toml, cli.*
ページ描画、Mermaid定義、ナビゲーション、移行状況、Netlifyビルドフラグ、CLI例、プロジェクト構成記録を更新しました。

Estimated code review effort: 5 (Critical) | ~120 minutes

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 48.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed AWS SAA の Next.js 移行と GCP ハンズオンの再構造化という主要変更を概ね要約できています。
Description check ✅ Passed 説明文は、AWS SAA 移行、GCP ハンズオン再構造化、UI/a11y 改善という変更内容と整合しています。
✨ Finishing Touches
📝 Generate docstrings
  • ✅ Generated successfully - (🔄 Check to regenerate)
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Ccna-automation-infrastructure-and-automation.html`:
- Around line 2536-2571: Update the Mermaid rendering block around mermaid.run()
so its returned Promise is explicitly handled, routing asynchronous rejections
to the existing console.error path while preserving the current synchronous
try/catch and rendering isolation.
- Around line 534-546: Update the mobile .sidebar closed state in the responsive
CSS and its menuToggle open/close handling so a transformed-offscreen sidebar is
also excluded from keyboard focus, using the existing open state to toggle
visibility or inert behavior. Keep the sidebar focusable and visible when
.sidebar.open is applied, and update menuToggle’s aria-expanded and label to
reflect the current state.

In `@cli.md`:
- Line 104: cli.md の拡張子集計行にあるコマンド内のパイプ文字を Markdown の表区切りとして解釈されないよう、各 `|`
をエスケープしてください。表構造とコマンドの内容は維持し、必要なパイプのみ修正します。

In `@Comptia-network-plus-domain4-network-security.html`:
- Around line 362-370: Update the responsive navigation around the `.sidebar`
media-query rule to preserve section navigation on screens below 900px: follow
the existing CCNA Automation guide’s mobile table-of-contents pattern, adding
its toggle control and mobile sidebar behavior, while keeping the desktop
navigation unchanged.

In `@Comptia-network-plus-troubleshooting-guide.md`:
- Around line 136-149: Update the OSI diagrams in subgraphs TD1 and BU1 to
include layers 5 (session) and 6 (presentation) between layers 4 and 7,
preserving the existing top-to-bottom and bottom-to-top directions and labels.
- Line 296: Update the Visual fault locator entry in the troubleshooting guide
table to use the correct Japanese name for a visible-light fiber fault detector,
replacing 光損失試験器 while preserving the description of locating breaks and damage.
- Around line 244-255: 「5.4 パフォーマンスの問題」配下の見出し「5.1 有線ネットワーク共通のパフォーマンス問題」と「5.2
無線ネットワーク特有のパフォーマンス問題」を、それぞれ「5.4.1」「5.4.2」形式に変更し、Objective番号との衝突を解消してください。
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: d886e65e-3053-4646-9a7d-7ffca020fa49

📥 Commits

Reviewing files that changed from the base of the PR and between 5d460e6 and f799d6b.

📒 Files selected for processing (6)
  • Ccna-automation-infrastructure-and-automation.html
  • Comptia-network-plus-domain4-network-security.html
  • Comptia-network-plus-domain4-network-security.md
  • Comptia-network-plus-troubleshooting-guide.md
  • cli.html
  • cli.md

Comment thread Ccna-automation-infrastructure-and-automation.html
Comment thread Ccna-automation-infrastructure-and-automation.html
Comment thread cli.md Outdated
Comment thread Comptia-network-plus-domain4-network-security.html
Comment thread Comptia-network-plus-troubleshooting-guide.md
Comment thread Comptia-network-plus-troubleshooting-guide.md Outdated
Comment thread Comptia-network-plus-troubleshooting-guide.md Outdated
- Add grid-column:2 to main so it occupies the correct column
  (NavBar is position:fixed and falls out of grid flow, causing
  main to span from column 1 and overlap the sidebar)
- Remove max-width:1340px from .shell and max-width from .wrap
  to expand content to full viewport width
- Update .rail-wrap left calculation to match removed max-width
  (was: max(0px,calc((100vw-1340px)/2 + padding)), now: padding only)

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 13

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (5)
app/gcl/hands-on/develop-your-gcp-network/page.css (1)

7-28: 📐 Maintainability & Code Quality | 🟠 Major | 🏗️ Heavy lift

ページローカルの --n-* トークンを廃止してください。

このコンポーネント CSS は独自カスタムプロパティを多数定義しています。既存の app/globals.css の3層トークンを直接参照し、不足する意味トークンはグローバル側のアーキテクチャに追加してください。

As per coding guidelines, “Do not define new custom properties (--*) inside component-level CSS.”

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/gcl/hands-on/develop-your-gcp-network/page.css` around lines 7 - 28,
Remove the page-local --n-* custom property definitions from .gcp-network-page
and update the component’s styles to reference the existing three-layer tokens
from app/globals.css directly. If a required semantic token is missing, add it
to the global token architecture rather than defining it in this component CSS;
preserve the current visual mappings and values.

Source: Coding guidelines

app/gcl/hands-on/develop-your-gcp-network/DevelopYourGcpNetworkGuide.tsx (2)

1116-1142: 🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift

公開教材から固定パスワードと長期サービスアカウントキーの手順を除去してください。

固定の DB パスワード、'%' ホスト、ならびに key.json の生成・Kubernetes Secret 化を案内すると、閲覧者が実運用でも複製できます。パスワードは Secret Manager、GKE からの Cloud SQL 接続は Workload Identity に置き換え、資格情報はプレースホルダーにしてください。Cloud SQL は Secret Manager による認証情報管理を推奨しています。 (docs.cloud.google.com)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/gcl/hands-on/develop-your-gcp-network/DevelopYourGcpNetworkGuide.tsx`
around lines 1116 - 1142, Update the Task 5 & 6 instructions in the
HtmlCodeBlock to remove the fixed database password, broad '%' host, key.json
generation, and Kubernetes service-account-key Secret flow. Replace credential
handling with Secret Manager using placeholder values, and replace Cloud SQL
Proxy authentication with GKE Workload Identity; retain only safe, non-reusable
placeholders and the surrounding cluster setup steps.

1099-1103: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

SSH をインターネット全体へ公開しないでください。

0.0.0.0/0 から両 VPC の TCP/22 を許可しています。踏み台への管理アクセスは外部 IP を付けず、IAP TCP forwarding 用の 35.235.240.0/20 に限定し、--tunnel-through-iap を案内してください。Google Cloud も IAP 用 SSH ではこの送信元範囲を指定し、直接 SSH の許可ルールを削除・無効化するよう案内しています。 (docs.cloud.google.com)

修正例
-    --network=griffin-dev-vpc --allow=tcp:22 --source-ranges=0.0.0.0/0
+    --network=griffin-dev-vpc --allow=tcp:22 --source-ranges=35.235.240.0/20
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/gcl/hands-on/develop-your-gcp-network/DevelopYourGcpNetworkGuide.tsx`
around lines 1099 - 1103, SSH ファイアウォールルール作成部分で、両 VPC の --source-ranges を
0.0.0.0/0 から IAP TCP forwarding 用の 35.235.240.0/20 に変更し、踏み台への管理アクセスが外部 IP
なしで行われる内容に更新してください。あわせて、直接 SSH 接続ではなく gcloud の --tunnel-through-iap
を使用する手順を案内し、インターネット全体からの TCP/22 許可を削除してください。
app/gcl/hands-on/cloud-load-balancing-guide/page.module.css (2)

45-55: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

sticky ナビゲーションをページ UI レイヤーへ移してください。

z-index: 40 は DisclaimerBanner と同値です。重なり順を保証できないため、ガイドの sticky UI は z-index: 100 に統一してください。

As per coding guidelines, “page sticky/fixed UI around z-index: 100”.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/gcl/hands-on/cloud-load-balancing-guide/page.module.css` around lines 45
- 55, Update the z-index value in the .container :global(.sidenav) rule from 40
to 100 so the guide’s sticky navigation uses the page sticky/fixed UI layer and
remains above the DisclaimerBanner.

Source: Coding guidelines


92-105: 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

ハードコード配色をグローバルトークンへ置換してください。

#274460、#112030、#080f1c、RGBA 値がこの CSS Module 全体に散在しています。既存の --color-background、--color-foreground、--color-border などの三層トークンへ寄せないと、テーマ切替時にこのページだけ配色が崩れます。

As per coding guidelines, “Use the three-layer CSS token architecture from app/globals.css”.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/gcl/hands-on/cloud-load-balancing-guide/page.module.css` around lines 92
- 105, Replace the hardcoded colors throughout the CSS Module, including
`#274460`, `#112030`, `#080f1c`, and RGBA values, with the appropriate three-layer
global tokens defined in app/globals.css, such as --color-background,
--color-foreground, and --color-border. Update the affected rules around
.container, .nav-item:hover, and .nav-item.active while preserving their
existing visual roles and states.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/gcl/hands-on/develop-your-gcp-network/page.css`:
- Around line 46-50: Update the .gcp-network-page .shell layout so it no longer
forces content to full viewport width; apply the existing or appropriate
centered max-width container to each .part main content while keeping section
backgrounds and separators full width.

In
`@app/gcl/hands-on/gcp-security-fundamentals-guide/GcpSecurityFundamentalsGuide.tsx`:
- Around line 806-810: Update the “鍵のライフサイクルと監査” list in
GcpSecurityFundamentalsGuide so it accurately states that KeyRing cannot be
deleted, while CryptoKey and key versions may be deleted only under the
applicable conditions. Replace the inaccurate “CryptoKeyとKeyRingは削除不可” wording
without changing the surrounding rotation and audit guidance.
- Around line 443-449: Update the BigQuery service-account example in the
section containing the step-list so it clearly separates the VM-attached service
account identity from the VM’s OAuth access scope. Describe attaching the
dedicated service account to the Compute Engine instance, configuring the
cloud-platform access scope separately, and granting the required IAM roles
independently; do not present the service account as the access scope.
- Around line 642-655: user 関数内の jwt.decode による IAP JWT
検証を、google.auth.transport.requests.Request と google.oauth2.id_token.verify_token
を使う公式検証フローへ置き換えてください。X-Goog-IAP-JWT-Assertion の取得と未指定時の戻り値は維持し、verify_token に
Request、IAP 公開鍵 URL、expected_audience を渡して署名・発行者・audience を検証し、検証済み情報から email と
sub を返してください。

In `@app/gcl/hands-on/gcp-security-fundamentals-guide/page.css`:
- Around line 112-118: Update the .gcp-security-page .hero and corresponding
.wrap content styles to use a centered, guideline-consistent max-width instead
of max-width: 100%; keep the hero background full width while constraining
readable hero and body content within that width.

In `@app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/NavBar.tsx`:
- Around line 39-46: Update the navigation links rendered by NAV_ITEMS.map in
NavBar to include aria-current for the currently active item, using the existing
activeId === item.id condition; leave aria-current unset for inactive links
while preserving the current className behavior.

In `@app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/page.css`:
- Around line 53-57: Update the z-index in the .app-dev-environment-page
.sub-navbar rule from 40 to approximately 100, preserving the existing sticky
positioning and ensuring it remains below the Header drawer layer at 200.
- Around line 3-17: Remove the page-local custom properties in
.app-dev-environment-page and update all declarations that reference --bg-*,
--text-*, and --neon-* to use the existing global tokens from app/globals.css
directly, including any --color-guide-* tokens already defined there. Do not
introduce replacement local aliases.

In
`@app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/SetUpAnAppDevEnvironmentGuide.tsx`:
- Around line 909-916: 「必要な IAM ロールの整理」セクションを更新し、Eventarc トリガー用サービスアカウントと Cloud
Run function の実行時サービスアカウントを明確に分けて説明してください。`gcloud eventarc triggers create
--service-account` で指定するトリガー用 SA に
`roles/eventarc.eventReceiver`、`roles/run.invoker`、`roles/iam.serviceAccountUser`
を付与する記述へ修正し、実行時 SA への不要な権限付与として説明されないようにしてください。
- Around line 615-625: Remove the --allow-unauthenticated option from the
Pub/Sub-triggered gcloud functions deploy command in the displayed deployment
example, leaving Eventarc and the trigger service account as the only invocation
path.

In `@Gcp-bastion-iap-firewall-best-practices.html`:
- Around line 7-10: Update the Tabler Icons stylesheet URL in the page’s link
element to use a verified fixed package version instead of `@latest`, preserving
the existing stylesheet path and loading behavior.

In `@Gcp-bastion-iap-firewall-best-practices.md`:
- Around line 1-2: Insert a blank line between the H1 heading and the following
H2 heading in the document, leaving both heading texts unchanged so the Markdown
conforms to MD022.
- Around line 203-218: Update the allow-ssh-internal firewall rule to remove the
broad source-ranges restriction and use a bastion-specific source network tag or
dedicated service account instead, ensuring only the bastion can reach
juice-shop over SSH. Update the accompanying instance tag commands and Japanese
explanation to match the selected source identity, without combining
source-ranges with the source tag or service account.

---

Outside diff comments:
In `@app/gcl/hands-on/cloud-load-balancing-guide/page.module.css`:
- Around line 45-55: Update the z-index value in the .container
:global(.sidenav) rule from 40 to 100 so the guide’s sticky navigation uses the
page sticky/fixed UI layer and remains above the DisclaimerBanner.
- Around line 92-105: Replace the hardcoded colors throughout the CSS Module,
including `#274460`, `#112030`, `#080f1c`, and RGBA values, with the appropriate
three-layer global tokens defined in app/globals.css, such as
--color-background, --color-foreground, and --color-border. Update the affected
rules around .container, .nav-item:hover, and .nav-item.active while preserving
their existing visual roles and states.

In `@app/gcl/hands-on/develop-your-gcp-network/DevelopYourGcpNetworkGuide.tsx`:
- Around line 1116-1142: Update the Task 5 & 6 instructions in the HtmlCodeBlock
to remove the fixed database password, broad '%' host, key.json generation, and
Kubernetes service-account-key Secret flow. Replace credential handling with
Secret Manager using placeholder values, and replace Cloud SQL Proxy
authentication with GKE Workload Identity; retain only safe, non-reusable
placeholders and the surrounding cluster setup steps.
- Around line 1099-1103: SSH ファイアウォールルール作成部分で、両 VPC の --source-ranges を
0.0.0.0/0 から IAP TCP forwarding 用の 35.235.240.0/20 に変更し、踏み台への管理アクセスが外部 IP
なしで行われる内容に更新してください。あわせて、直接 SSH 接続ではなく gcloud の --tunnel-through-iap
を使用する手順を案内し、インターネット全体からの TCP/22 許可を削除してください。

In `@app/gcl/hands-on/develop-your-gcp-network/page.css`:
- Around line 7-28: Remove the page-local --n-* custom property definitions from
.gcp-network-page and update the component’s styles to reference the existing
three-layer tokens from app/globals.css directly. If a required semantic token
is missing, add it to the global token architecture rather than defining it in
this component CSS; preserve the current visual mappings and values.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 60371383-318e-4785-ac9d-b27b2bfc5bae

📥 Commits

Reviewing files that changed from the base of the PR and between 37f72ce and b7c4fa4.

📒 Files selected for processing (56)
  • AWS-Certified-Solutions-Architect-Associate-Domain4.md
  • Ccna-automation-network-fundamentals.html
  • GEMINI.md
  • Gcp-bastion-iap-firewall-best-practices.html
  • Gcp-bastion-iap-firewall-best-practices.md
  • Iap-tcp-forwarding-best-practices-guide.md
  • MIGRATION_PROGRESS.md
  • __tests__/aws/solutions-architect-associate/domain2/page.test.tsx
  • __tests__/gcl/hands-on/build-a-secure-google-cloud-network/page.test.tsx
  • __tests__/gcl/hands-on/cloud-load-balancing-guide/page.test.tsx
  • __tests__/gcl/hands-on/develop-your-gcp-network/page.test.tsx
  • __tests__/gcl/hands-on/gcp-security-fundamentals-guide/page.test.tsx
  • __tests__/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/page.test.tsx
  • app/aws/solutions-architect-associate/NavBar.tsx
  • app/aws/solutions-architect-associate/domain1/page.css
  • app/aws/solutions-architect-associate/domain2/Domain2Guide.tsx
  • app/aws/solutions-architect-associate/domain2/constants.ts
  • app/aws/solutions-architect-associate/domain2/page.tsx
  • app/aws/solutions-architect-associate/domain3/Domain3Guide.tsx
  • app/aws/solutions-architect-associate/domain3/NavBar.tsx
  • app/aws/solutions-architect-associate/domain3/page.css
  • app/constants.ts
  • app/gcl/hands-on/build-a-secure-google-cloud-network/BuildASecureGoogleCloudNetworkGuide.tsx
  • app/gcl/hands-on/build-a-secure-google-cloud-network/NavBar.tsx
  • app/gcl/hands-on/build-a-secure-google-cloud-network/constants.ts
  • app/gcl/hands-on/build-a-secure-google-cloud-network/page.css
  • app/gcl/hands-on/build-a-secure-google-cloud-network/page.tsx
  • app/gcl/hands-on/cloud-load-balancing-guide/CloudLoadBalancingGuide.tsx
  • app/gcl/hands-on/cloud-load-balancing-guide/NavBar.tsx
  • app/gcl/hands-on/cloud-load-balancing-guide/constants.ts
  • app/gcl/hands-on/cloud-load-balancing-guide/page.module.css
  • app/gcl/hands-on/cloud-load-balancing-guide/page.tsx
  • app/gcl/hands-on/develop-your-gcp-network/DevelopYourGcpNetworkGuide.tsx
  • app/gcl/hands-on/develop-your-gcp-network/NavBar.tsx
  • app/gcl/hands-on/develop-your-gcp-network/constants.ts
  • app/gcl/hands-on/develop-your-gcp-network/page.css
  • app/gcl/hands-on/develop-your-gcp-network/page.tsx
  • app/gcl/hands-on/gcp-security-fundamentals-guide/GcpSecurityFundamentalsGuide.tsx
  • app/gcl/hands-on/gcp-security-fundamentals-guide/NavBar.tsx
  • app/gcl/hands-on/gcp-security-fundamentals-guide/constants.ts
  • app/gcl/hands-on/gcp-security-fundamentals-guide/page.css
  • app/gcl/hands-on/gcp-security-fundamentals-guide/page.tsx
  • app/gcl/hands-on/iap-tcp-forwarding-best-practices-guide/page.css
  • app/gcl/hands-on/layout.tsx
  • app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/NavBar.tsx
  • app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/SetUpAnAppDevEnvironmentGuide.tsx
  • app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/constants.ts
  • app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/page.css
  • app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/page.tsx
  • app/globals.css
  • archive/Aws/SAA/html/AWS-Certified-Solutions-Architect-Associate-Domain2.html
  • archive/Aws/SAA/html/AWS-Certified-Solutions-Architect-Associate.html
  • archive/Aws/SAA/md/AWS-Certified-Solutions-Architect-Associate-Domain2.md
  • archive/Aws/SAA/md/AWS-Certified-Solutions-Architect-Associate-Domain3.md
  • lib/featureFlags.ts
  • netlify.toml
💤 Files with no reviewable changes (1)
  • app/aws/solutions-architect-associate/domain2/page.tsx

Comment thread app/gcl/hands-on/develop-your-gcp-network/page.css
Comment thread app/gcl/hands-on/gcp-security-fundamentals-guide/page.css Outdated
Comment thread Gcp-bastion-iap-firewall-best-practices.html
Comment thread Gcp-bastion-iap-firewall-best-practices.md
Comment thread Gcp-bastion-iap-firewall-best-practices.md Outdated
@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 29, 2026 •

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 29, 2026 •

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/SetUpAnAppDevEnvironmentGuide.tsx (1)

910-916: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win

roles/iam.serviceAccountUser の付与先を訂正してください。

このロールは Eventarc トリガー用 SA ではなく、その SA を --service-account で関連付ける作成者・デプロイヤーに必要です。現在の説明では不要な権限をトリガー SA に与えつつ、作成者が権限不足で失敗し得ます。(docs.cloud.google.com)

  • app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/SetUpAnAppDevEnvironmentGuide.tsx#L910-L916: roles/iam.serviceAccountUser の主体を「Eventarc トリガー作成者」に変更してください。
  • app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/SetUpAnAppDevEnvironmentGuide.tsx#L933-L945: トリガー SA の同ロール行を削除し、作成者・デプロイヤー向けの権限として別記してください。
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/SetUpAnAppDevEnvironmentGuide.tsx`
around lines 910 - 916, SetUpAnAppDevEnvironmentGuide.tsx:910-916 では
roles/iam.serviceAccountUser の付与先を Eventarc トリガー用サービスアカウントから、--service-account
を関連付ける Eventarc トリガー作成者・デプロイヤーへ変更してください。同ファイル:933-945
ではトリガー用サービスアカウントへの同ロールの記載を削除し、作成者・デプロイヤー向け権限として別記してください。

Source: MCP tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/gcl/hands-on/develop-your-gcp-network/DevelopYourGcpNetworkGuide.tsx`:
- Around line 1094-1100: Update both --network-interface entries in the gcloud
compute instances create griffin-bastion command to explicitly include
no-address, ensuring neither the dev nor prod NIC receives an external IP and
preserving the accompanying explanation.

---

Duplicate comments:
In
`@app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/SetUpAnAppDevEnvironmentGuide.tsx`:
- Around line 910-916: SetUpAnAppDevEnvironmentGuide.tsx:910-916 では
roles/iam.serviceAccountUser の付与先を Eventarc トリガー用サービスアカウントから、--service-account
を関連付ける Eventarc トリガー作成者・デプロイヤーへ変更してください。同ファイル:933-945
ではトリガー用サービスアカウントへの同ロールの記載を削除し、作成者・デプロイヤー向け権限として別記してください。
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 4ffafbb7-09dd-4194-a6e2-74031edc2813

📥 Commits

Reviewing files that changed from the base of the PR and between b7c4fa4 and 5509fa8.

📒 Files selected for processing (10)
  • Gcp-bastion-iap-firewall-best-practices.html
  • Gcp-bastion-iap-firewall-best-practices.md
  • app/gcl/hands-on/cloud-load-balancing-guide/page.module.css
  • app/gcl/hands-on/develop-your-gcp-network/DevelopYourGcpNetworkGuide.tsx
  • app/gcl/hands-on/develop-your-gcp-network/page.css
  • app/gcl/hands-on/gcp-security-fundamentals-guide/GcpSecurityFundamentalsGuide.tsx
  • app/gcl/hands-on/gcp-security-fundamentals-guide/page.css
  • app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/NavBar.tsx
  • app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/SetUpAnAppDevEnvironmentGuide.tsx
  • app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/page.css

@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 29, 2026 •

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@myoshi2891

Copy link
Copy Markdown
Owner Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 29, 2026 •

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@myoshi2891 myoshi2891 changed the title docs: update find basename exec syntax to process files individually … AWS SAA ガイドの Next.js 移行推進と GCP ハンズオンガイドのルーティング再構造化・UI/a11y 最適化 Jul 29, 2026
@coderabbitai

coderabbitai Bot commented Jul 29, 2026 •

Copy link
Copy Markdown
Contributor

Note

Docstrings generation - SUCCESS
Generated docstrings for this pull request at #115

Docstrings generation was requested by @myoshi2891.

* #114 (comment)

The following files were modified:

* `app/aws/solutions-architect-associate/NavBar.tsx`
* `app/aws/solutions-architect-associate/SaaGuide.tsx`
* `app/aws/solutions-architect-associate/domain1/Domain1Guide.tsx`
* `app/aws/solutions-architect-associate/domain1/NavBar.tsx`
* `app/aws/solutions-architect-associate/domain1/page.tsx`
* `app/aws/solutions-architect-associate/domain2/Domain2Guide.tsx`
* `app/aws/solutions-architect-associate/domain2/NavBar.tsx`
* `app/aws/solutions-architect-associate/domain2/page.tsx`
* `app/aws/solutions-architect-associate/domain3/Domain3Guide.tsx`
* `app/aws/solutions-architect-associate/domain3/NavBar.tsx`
* `app/aws/solutions-architect-associate/domain3/page.tsx`
* `app/gcl/hands-on/develop-your-gcp-network/NavBar.tsx`
* `app/gcl/hands-on/gcp-security-fundamentals-guide/GcpSecurityFundamentalsGuide.tsx`
* `app/gcl/hands-on/gcp-security-fundamentals-guide/NavBar.tsx`
* `app/gcl/hands-on/iap-tcp-forwarding-best-practices-guide/IapTcpForwardingGuide.tsx`
* `app/gcl/hands-on/iap-tcp-forwarding-best-practices-guide/NavBar.tsx`
* `app/gcl/hands-on/layout.tsx`
* `app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/NavBar.tsx`
* `app/gcl/hands-on/set-up-an-app-dev-environment-on-google-cloud/SetUpAnAppDevEnvironmentGuide.tsx`
* `app/navigation.ts`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant