jpskill.com
🛠️ 開発・MCP コミュニティ 🔴 エンジニア向け 👤 エンジニア・AI開発者

🛠️ Grpc Golang

grpc-golang

Go言語で、本番環境でも安全

⏱ テスト計画作成 2時間 → 20分

📺 まず動画で見る(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本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
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
🪟 Windows (PowerShell)
$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. 1. 下の青いボタンを押して grpc-golang.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → grpc-golang フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

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)を管理する場合。これはアプリケーションコードのスコープ外です。

ステップバイステップガイド

  1. 技術的コンテキストの確認: Go のバージョン、gRPC-Go のバージョン、およびプロジェクトが Buf または生の protoc を使用しているかどうかを特定します。
  2. 要件の確認: mTLS の必要性、ロードパターン(単項/ストリーミング)、SLO、およびメッセージサイズ制限を特定します。
  3. スキーマの計画: パッケージのバージョン管理(例: api.v1)、リソースタイプ、およびエラーマッピングを定義します。
  4. セキュリティ設計: サービス間認証のために mTLS を実装します。
  5. 可観測性: トレース、メトリクス、および構造化ロギングのためにインターセプターを構成します。
  6. 検証: コード生成を確定する前に、常に 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.yamlbuf.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.Dialgrpc.NewClient)を使用している場合があります。
  • L7 gRPC 対応ロードバランサーの設定(例: Envoy、NGINX)は対象外です。
  • Protobuf スキーマレジストリや、Buf lint を超える大規模なスキーマガバナンスは対象外です。

リソース

関連スキル

  • @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 .proto files 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

  1. Confirm Technical Context: Identify Go version, gRPC-Go version, and whether the project uses Buf or raw protoc.
  2. Confirm Requirements: Identify mTLS needs, load patterns (unary/streaming), SLOs, and message size limits.
  3. Plan Schema: Define package versioning (e.g., api.v1), resource types, and error mapping.
  4. Security Design: Implement mTLS for service-to-service authentication.
  5. Observability: Configure interceptors for tracing, metrics, and structured logging.
  6. Verification: Always run buf lint and 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.yaml and buf.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.ClientConn per request; always reuse connections.

Troubleshooting

  • Error: Inconsistent Gen: If the generated code does not match the schema, run buf generate and verify the go_package option.
  • 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.CertPool on 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.Dial vs grpc.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

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 .proto files.
  • @docker-expert - Containerizing gRPC services and configuring TLS cert injection via Docker secrets.