🛠️ Grpc Golang
Go言語で、本番環境でも安全
📺 まず動画で見る(YouTube)
▶ 【衝撃】最強のAIエージェント「Claude Code」の最新機能・使い方・プログラミングをAIで効率化する超実践術を解説! ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。
📜 元の英語説明(参考)
Build production-ready gRPC services in Go with mTLS, streaming, and observability. Use when designing Protobuf contracts with Buf or implementing secure service-to-service transport.
🇯🇵 日本人クリエイター向け解説
Go言語で、本番環境でも安全
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o grpc-golang.zip https://jpskill.com/download/2956.zip && unzip -o grpc-golang.zip && rm grpc-golang.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/2956.zip -OutFile "$d\grpc-golang.zip"; Expand-Archive "$d\grpc-golang.zip" -DestinationPath $d -Force; ri "$d\grpc-golang.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
grpc-golang.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
grpc-golangフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
💬 こう話しかけるだけ — サンプルプロンプト
- › Grpc Golang を使って、最小構成のサンプルコードを示して
- › Grpc Golang の主な使い方と注意点を教えて
- › Grpc Golang を既存プロジェクトに組み込む方法を教えて
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
gRPC Golang (gRPC-Go)
概要
Go で本番環境レベルの gRPC サービスを設計・実装するための包括的なガイドです。Buf によるコントラクトの標準化、mTLS を介したトランスポート層セキュリティ、OpenTelemetry インターセプターによる詳細な可観測性を扱います。
このスキルを使用する場面
- Go で gRPC を使用したマイクロサービス通信を設計する場合。
- Protobuf を使用して高性能な内部 API を構築する場合。
- ストリーミングワークロード(単方向または双方向)を実装する場合。
- Protobuf と Buf を使用して API コントラクトを標準化する場合。
- サービス間認証のために mTLS を構成する場合。
このスキルを使用しない場面
- gRPC の要件なしに純粋な REST/HTTP パブリック API を構築する場合。
- 新しい API バージョン(例:
api.v2)を導入したり、後方互換性を確保したりする能力なしに、レガシーな.protoファイルを変更する場合。 - サービスメッシュのトラフィックルーティング(例: Istio/Linkerd)を管理する場合。これはアプリケーションコードのスコープ外です。
ステップバイステップガイド
- 技術的コンテキストの確認: Go のバージョン、gRPC-Go のバージョン、およびプロジェクトが Buf または生の protoc を使用しているかどうかを特定します。
- 要件の確認: mTLS の必要性、ロードパターン(単項/ストリーミング)、SLO、およびメッセージサイズ制限を特定します。
- スキーマの計画: パッケージのバージョン管理(例:
api.v1)、リソースタイプ、およびエラーマッピングを定義します。 - セキュリティ設計: サービス間認証のために mTLS を実装します。
- 可観測性: トレース、メトリクス、および構造化ロギングのためにインターセプターを構成します。
- 検証: コード生成を確定する前に、常に
buf lintと破壊的変更チェックを実行します。
詳細なパターン、コード例、およびアンチパターンについては、resources/implementation-playbook.md を参照してください。
例
例 1: サービスとメッセージの定義 (v1 API)
syntax = "proto3";
package api.v1;
option go_package = "github.com/org/repo/gen/api/v1;apiv1";
service UserService {
rpc GetUser(GetUserRequest) returns (GetUserResponse);
}
message User {
string id = 1;
string name = 2;
}
message GetUserRequest {
string id = 1;
}
message GetUserResponse {
User user = 1;
}
ベストプラクティス
- ✅ すべきこと: Buf を使用して、
buf.yamlとbuf.gen.yamlでツールチェーンとリンティングを標準化してください。 - ✅ すべきこと: パッケージパスには常にセマンティックバージョニングを使用してください(例:
package api.v1)。 - ✅ すべきこと: すべての内部サービス間通信に mTLS を強制してください。
- ✅ すべきこと: リソースリークを防ぐために、すべてのストリーミングハンドラーで
ctx.Done()を処理してください。 - ✅ すべきこと: ドメインエラーを標準の gRPC ステータスコード(例:
codes.NotFound)にマッピングしてください。 - ❌ すべきでないこと: 生の内部エラー文字列やスタックトレースを gRPC クライアントに返さないでください。
- ❌ すべきでないこと: リクエストごとに新しい
grpc.ClientConnを作成しないでください。常に接続を再利用してください。
トラブルシューティング
- エラー: Inconsistent Gen: 生成されたコードがスキーマと一致しない場合は、
buf generateを実行し、go_packageオプションを確認してください。 - エラー: Context Deadline: クライアントのタイムアウトを確認し、サーバーがストリーミングハンドラーで無限にブロックしていないことを確認してください。
- エラー: mTLS Handshake: CA 証明書がクライアントとサーバーの両方で
x509.CertPoolに正しく追加されていることを確認してください。
制限事項
- サービスメッシュのトラフィックルーティング(Istio/Linkerd の設定)は対象外です。
- gRPC-Web またはブラウザベースの gRPC 統合は対象外です。
- Go 1.21 以降および gRPC-Go v1.60 以降を前提としています。古いバージョンでは異なる API(例:
grpc.Dialとgrpc.NewClient)を使用している場合があります。 - L7 gRPC 対応ロードバランサーの設定(例: Envoy、NGINX)は対象外です。
- Protobuf スキーマレジストリや、Buf lint を超える大規模なスキーマガバナンスは対象外です。
リソース
- 詳細なパターン、コード例、およびアンチパターンについては、
resources/implementation-playbook.mdを参照してください。 - Google API Design Guide
- Buf Docs
- gRPC-Go Docs
- OpenTelemetry Go Instrumentation
関連スキル
- @golang-pro - gRPC レイヤー以外の一般的な Go パターンとパフォーマンス最適化。
- @go-concurrency-patterns - ストリーミングハンドラーのための高度なゴルーチンライフサイクル管理。
- @api-design-principles -
.protoファイルを記述する前のリソース命名とバージョン管理戦略。 - @docker-expert - gRPC サービスのコンテナ化と Docker secrets を介した TLS 証明書インジェクションの設定。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
gRPC Golang (gRPC-Go)
Overview
Comprehensive guide for designing and implementing production-grade gRPC services in Go. Covers contract standardization with Buf, transport layer security via mTLS, and deep observability with OpenTelemetry interceptors.
Use this skill when
- Designing microservices communication with gRPC in Go.
- Building high-performance internal APIs using Protobuf.
- Implementing streaming workloads (unidirectional or bidirectional).
- Standardizing API contracts using Protobuf and Buf.
- Configuring mTLS for service-to-service authentication.
Do not use this skill when
- Building pure REST/HTTP public APIs without gRPC requirements.
- Modifying legacy
.protofiles without the ability to introduce a new API version (e.g.,api.v2) or ensure backward compatibility. - Managing service mesh traffic routing (e.g., Istio/Linkerd), which is outside the application code scope.
Step-by-Step Guide
- Confirm Technical Context: Identify Go version, gRPC-Go version, and whether the project uses Buf or raw protoc.
- Confirm Requirements: Identify mTLS needs, load patterns (unary/streaming), SLOs, and message size limits.
- Plan Schema: Define package versioning (e.g.,
api.v1), resource types, and error mapping. - Security Design: Implement mTLS for service-to-service authentication.
- Observability: Configure interceptors for tracing, metrics, and structured logging.
- Verification: Always run
buf lintand breaking change checks before finalizing code generation.
Refer to resources/implementation-playbook.md for detailed patterns, code examples, and anti-patterns.
Examples
Example 1: Defining a Service & Message (v1 API)
syntax = "proto3";
package api.v1;
option go_package = "github.com/org/repo/gen/api/v1;apiv1";
service UserService {
rpc GetUser(GetUserRequest) returns (GetUserResponse);
}
message User {
string id = 1;
string name = 2;
}
message GetUserRequest {
string id = 1;
}
message GetUserResponse {
User user = 1;
}
Best Practices
- ✅ Do: Use Buf to standardize your toolchain and linting with
buf.yamlandbuf.gen.yaml. - ✅ Do: Always use semantic versioning in package paths (e.g.,
package api.v1). - ✅ Do: Enforce mTLS for all internal service-to-service communication.
- ✅ Do: Handle
ctx.Done()in all streaming handlers to prevent resource leaks. - ✅ Do: Map domain errors to standard gRPC status codes (e.g.,
codes.NotFound). - ❌ Don't: Return raw internal error strings or stack traces to gRPC clients.
- ❌ Don't: Create a new
grpc.ClientConnper request; always reuse connections.
Troubleshooting
- Error: Inconsistent Gen: If the generated code does not match the schema, run
buf generateand verify thego_packageoption. - Error: Context Deadline: Check client timeouts and ensure the server is not blocking infinitely in streaming handlers.
- Error: mTLS Handshake: Ensure the CA certificate is correctly added to the
x509.CertPoolon both client and server sides.
Limitations
- Does not cover service mesh traffic routing (Istio/Linkerd configuration).
- Does not cover gRPC-Web or browser-based gRPC integration.
- Assumes Go 1.21+ and gRPC-Go v1.60+; older versions may have different APIs (e.g.,
grpc.Dialvsgrpc.NewClient). - Does not cover L7 gRPC-aware load balancer configuration (e.g., Envoy, NGINX).
- Does not address Protobuf schema registry or large-scale schema governance beyond Buf lint.
Resources
resources/implementation-playbook.mdfor detailed patterns, code examples, and anti-patterns.- Google API Design Guide
- Buf Docs
- gRPC-Go Docs
- OpenTelemetry Go Instrumentation
Related Skills
- @golang-pro - General Go patterns and performance optimization outside the gRPC layer.
- @go-concurrency-patterns - Advanced goroutine lifecycle management for streaming handlers.
- @api-design-principles - Resource naming and versioning strategy before writing
.protofiles. - @docker-expert - Containerizing gRPC services and configuring TLS cert injection via Docker secrets.