Skip Navigation
Show nav
Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Visit the Heroku Blog

    Find news and updates from Heroku in the blog.

    Visit Blog
  • Log inorSign up
Hide categories

Categories

  • Heroku のアーキテクチャ
    • Dyno (アプリコンテナ)
      • Dyno Management
      • Dyno Concepts
      • Dyno Behavior
      • Dyno Reference
      • Dyno Troubleshooting
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • Developer Tools
    • コマンドライン
    • Heroku VS Code Extension
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリーとインテグレーション
    • 継続的統合
  • 言語サポート
    • Node.js
      • Troubleshooting Node.js Apps
      • Working with Node.js
      • Node.js Behavior in Heroku
    • Ruby
      • Rails のサポート
      • Bundler の使用
      • Working with Ruby
      • Ruby Behavior in Heroku
      • Troubleshooting Ruby Apps
    • Python
      • Working with Python
      • Python でのバックグランドジョブ
      • Python Behavior in Heroku
      • Django の使用
    • Java
      • Java Behavior in Heroku
      • Working with Java
      • Maven の使用
      • Spring Boot の使用
      • Troubleshooting Java Apps
    • PHP
      • PHP Behavior in Heroku
      • Working with PHP
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres スターターガイド
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
      • Migrating to Heroku Postgres
    • Heroku Data For Redis
    • Apache Kafka on Heroku
    • その他のデータストア
  • AI
    • Vector Database
    • Working with AI
    • Heroku Inference
      • AI Models
      • Inference Essentials
      • Inference API
      • Quick Start Guides
    • Model Context Protocol
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
      • シングルサインオン (SSO)
    • Private Space
      • インフラストラクチャネットワーキング
    • コンプライアンス
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
      • Heroku Connect の管理
      • Heroku Connect のリファレンス
      • Heroku Connect のトラブルシューティング
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Salesforce とのインテグレーション
  • Heroku の拡張
  • Platform API
  • app.json のスキーマ

app.json のスキーマ

日本語 — Switch to English

この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。

最終更新日 2024年01月24日(水)

Table of Contents

  • app.json の例
  • addons
  • buildpacks
  • description
  • env
  • environments
  • formation
  • image
  • keywords
  • logo (URL)
  • name
  • repository
  • scripts
  • stack
  • success_url
  • website

app.json​ は、Web アプリを記述するためのマニフェスト形式です。Heroku でアプリを実行するために必要な環境変数、アドオン、その他の情報を宣言します。このドキュメントでは、スキーマについて詳しく説明します。

app.json​ を使用して Heroku でアプリをセットアップする方法についての詳細は、「Setting Up Apps using the Platform API​」(Platform API を使用してアプリを設定する) を参照してください。

app.json の例

{
  "name": "Small Sharp Tool",
  "description": "This app does one little thing, and does it well.",
  "keywords": [
    "productivity",
    "HTML5",
    "scalpel"
  ],
  "website": "https://small-sharp-tool.com/",
  "repository": "https://github.com/jane-doe/small-sharp-tool",
  "logo": "https://small-sharp-tool.com/logo.svg",
  "success_url": "/welcome",
  "scripts": {
    "postdeploy": "bundle exec rake bootstrap"
  },
  "env": {
    "SECRET_TOKEN": {
      "description": "A secret key for verifying the integrity of signed cookies.",
      "generator": "secret"
    },
    "WEB_CONCURRENCY": {
      "description": "The number of processes to run.",
      "value": "5"
    }
  },
  "formation": {
    "web": {
      "quantity": 1,
      "size": "standard-1x"
    }
  },
  "image": "heroku/ruby",
  "addons": [
    "openredis",
    {
      "plan": "mongolab:shared-single-small",
      "as": "MONGO"
    },
    {
      "plan": "heroku-postgresql",
      "options": {
        "version": "9.5"
      }
    }
  ],
  "buildpacks": [
    {
      "url": "https://github.com/stomita/heroku-buildpack-phantomjs"
    }
  ],
  "environments": {
    "test": {
      "scripts": {
        "test": "bundle exec rake test"
      }
    }
  }
}

app.json スキーマリファレンス

addons

(配列、任意)​ デプロイする前にアプリにプロビジョニングする Heroku アドオンを指定する文字列またはオブジェクトの配列。

アドオンプランがオブジェクトとして指定される場合、以下のプロパティでアドオンを設定します。

  • plan​: ​(文字列、必須)​ プロビジョニングするアドオンとプラン。この文字列は addon:plan​ または addon​ の形式である必要があります。プランを省略した場合、そのアドオンのデフォルトプランがプロビジョニングされます。
  • as​: ​(文字列、任意)​ 新しいアドオンのアタッチ名​。アタッチ名を省略した場合、アドオンはそのデフォルト名を使用してアタッチされます。
  • options​: ​(オブジェクト、任意)​ アドオンに固有のオプション (例: ​Heroku PostgreSQL)​ でプロビジョニングするデータベースのバージョン)。キーは、アドオンのドキュメントで定義されているオプション名に対応します。値はアドオンオプションの値に対応し、文字列である必要があります。値を取らないオプションについては、値 true​ を使用します。

アドオンが文字列として指定される場合、文字列は addon:plan​ または addon​ の形式である必要があります。アドオンは、そのデフォルトのアタッチ名とオプションを使用してプロビジョニングされます。オブジェクト形式が推奨されます。

レビューアプリや CI アプリなどの一時的なアプリでは、プランが指定されている場合、プランを上書きします。それらのアプリでは、アドオンプロバイダーによって指定された一時的なデフォルトを代わりに使用します。Heroku ではこのモデルの進化に取り組んでいますが、これは当面の間、より適切なデフォルトプランを提供してプロバイダーの労力を軽減するために役立ちます。

{
  "addons": [
    "openredis",
    {
      "plan": "mongolab:shared-single-small",
      "as": "MONGO"
    },
    {
      "plan": "heroku-postgresql",
      "options": {
        "version": "9.5"
      }
    }
  ]
}

buildpacks

(配列、任意)​ アプリをビルドするために必要な buildpack を指定するオブジェクトの配列。buildpack のダウンロードまたは複製元の url​ フィールドが、個々の buildpack​ オブジェクトに含まれている必要があります。リストの最後の buildpack は、アプリケーションのプロセスタイプ​を決定するために使用されます。

公式でサポートされている buildpack の短縮名​も URL として使用できます。

{
  "buildpacks": [
    {
      "url": "https://github.com/heroku/heroku-buildpack-pgbouncer"
    },
    {
      "url": "heroku/ruby"
    }
  ]
}

description

(文字列、任意)​ アプリの概要: アプリの機能、所有者、使用目的など。

{
  "description": "This app does one little thing, and does it well."
}

env

(オブジェクト、任意)​ アプリのランタイム環境に追加する環境設定​の Key-Value オブジェクト。キーは、環境設定の名前です。値は、文字列またはオブジェクトです。値が文字列の場合、その値が使用されます。値がオブジェクトの場合、その変数の特定の要件を定義します。

  • description​: 値の目的と適切な値の決定方法についてのユーザーが理解できる説明
  • value​: 使用するデフォルト値。これは常に文字列である必要があります。
  • required​: 指定された値がアプリの動作に必要かどうかを示すブール値 (デフォルト: ​true​)。
  • generator​: 値を生成するために呼び出す関数を表す文字列。現在サポートされている唯一の生成元は、疑似ランダム文字列を生成する secret​ です。
{
  "env": {
    "SECRET_TOKEN": {
      "description": "A secret key for verifying the integrity of signed cookies.",
      "generator": "secret"
    },
    "WEB_CONCURRENCY": {
      "description": "The number of processes to run.",
      "value": "5"
    }
  }
}

environments

(オブジェクト、任意)​ app.json のキーの環境固有の上書きを保持する Key-Value オブジェクト。

オブジェクト内の各キーは、環境の名前です。以下の環境名はプラットフォームによって認識されます。

  • test​: Heroku CI によって作成された継続的インテグレーション環境に適用されます。
  • review​: ​Heroku Review Apps​ によって作成された Review Apps 環境に適用されます。

environments​ オブジェクトでは、test​ および review​ のみが許可された環境名です。

 

CI の概要については、Heroku CI のドキュメント​を参照してください。

environments​ オブジェクト内の各値は、有効な app.json​ キーを保持するオブジェクトです。プラットフォームで app.json​ がアプリに適用されると、当該の環境で定義されているキーの値によって、ベースマニフェストで定義されている値が完全に置き換えられます​。たとえば、次のマニフェストがあるとします。

{
  "env": {
    "SECRET_TOKEN": {
      "description": "A secret key for verifying the integrity of signed cookies.",
      "generator": "secret"
    },
    "WEB_CONCURRENCY": "5"
  },
  "environments": {
    "test": {
      "env": {
        "SECRET_TOKEN": "test-secret"
      }
    }
  }
}

ベースマニフェストを使用して作成されたアプリには SECRET_TOKEN​ 環境設定 (生成された値を含む) と WEB_CONCURRENCY​ 環境設定 (値は 5​) の両方がありますが、test​ 環境を使用して作成されたアプリには SECRET_TOKEN​ 環境設定 (固定値) のみ​があります。WEB_CONCURRENCY​環境設定は test​ 環境では設定されません。

formation

(オブジェクト、任意)​ プロセスタイプ設定の Key-Value オブジェクト。キーは、プロセスタイプの名前です。値は、フォーメーションリソース​などのオブジェクトです。

  • quantity​: 維持するプロセスの数
  • size​: ​このリスト​に準じた dyno サイズ

リクエストされたフォーメーションに応じて、使用された dyno の料金が請求されます。

 

サイズが指定されていない場合、アプリはデフォルトの dyno サイズ​を使用します。複数のプロセスがある場合は、dyno タイプの混在を避けるために、formation​ キーを使用して dyno サイズを明示的に設定することを強くお勧めします。

{
  "formation": {
    "web": {
      "quantity": 1,
      "size": "basic"
    }
  }
}

image

(文字列、任意)​ アプリのビルドに使用できる Docker イメージ。このキーは、ローカル Docker コンテナをプロビジョニングするために Heroku-Docker​ によって使用されます。

{
  "image": "heroku/nodejs"
}

メンテナンスされている公式の Docker イメージは Heroku の Docker Hub​ にあります。

このキーは非推奨です。

keywords

(配列、任意)​ アプリについて説明する文字列の配列。

{
  "keywords": [
    "productivity",
    "HTML5",
    "scalpel"
  ]
}

logo (URL)

(文字列、任意)​ アプリケーションのロゴ画像の URL。寸法は正方形である必要があります。形式は SVG、PNG、または JPG です。

{
  "logo": "https://small-sharp-tool.com/logo.svg"
}

name

(文字列、任意)​ テンプレートを特定するための明快で単純な名前 (最大 30 文字)。

{
  "name": "Small Sharp Tool"
}

repository

(文字列、任意)​ アプリケーションのソースコードの場所 (Git URL、GitHub URL、Subversion URL、Mercurial URL など)。

{
  "repository": "https://github.com/jane-doe/small-sharp-tool"
}

scripts

(オブジェクト、任意)​ ビルド/リリースプロセスのさまざまな段階で実行するスクリプトまたはシェルコマンドを指定する Key-Value オブジェクト。

  • postdeploy​: ​(文字列またはオブジェクト、任意)​ アプリが作成された後に 1 回限りの設定タスクを実行するスクリプトまたはシェルコマンド。この値は、文字列またはオブジェクトです。値がオブジェクトである場合は、次のプロパティが受け付けられます。
    • command​: ​(文字列、必須)​ 実行するスクリプトまたはシェルコマンド。
    • size​: ​(文字列、任意)​ このコマンドが実行される dyno のサイズ。有効なサイズはここ​で見つけることができます。

postdeploy​ スクリプトは、アプリが作成された後に一度​実行され、その後のアプリへのデプロイ時には実行されません。

{
  "scripts": {
    "postdeploy": "bundle exec rake bootstrap",
  }
}
  • pr-predestroy​: ​(文字列またはオブジェクト、任意)​ レビューアプリが破棄された後にクリーンアップタスクを実行するスクリプトまたはシェルコマンド。この値は、文字列またはオブジェクトです。値がオブジェクトである場合は、次のプロパティが受け付けられます。
    • command​: ​(文字列、必須)​ 実行するスクリプトまたはシェルコマンド。
    • size​: ​(文字列、任意)​ このコマンドが実行される dyno のサイズ。有効なサイズはここ​で見つけることができます。

pr-predestroy​ スクリプトは、関連付けられたプルリクエストをマージまたは閉じることによってレビューアプリが破棄されたときに実行されます。

{
  "scripts": {
    "pr-predestroy": "bundle exec rake cleanup",
  }
}

リクエストされたフォーメーションに応じて、使用された dyno の料金が請求されます。

stack

(文字列、任意)​ アプリが実行される Heroku スタック​。これが指定されない場合、デフォルトのスタック​が使用されます。

{
  "stack": "heroku-20"
}

success_url

(文字列、任意)​ ユーザーの新しいアプリがデプロイされたときにユーザーをリダイレクトする場所を指定する URL。値が完全修飾 URL の場合、ユーザーはその URL にリダイレクトされます。値がスラッシュ /​ で始まる場合、ユーザーは新しくデプロイされたアプリ内のそのパスにリダイレクトされます。

{
  "success_url": "/welcome"
}

website

(文字列、任意)​ プロジェクトの Web サイト。

{
  "website": "https://small-sharp-tool.com/"
}

関連カテゴリー

  • Platform API
ゼロからの slug の作成 OAuth

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices