最終更新日 2025年03月20日(木)
アドオンマニフェストは、Heroku とクラウドサービス間のインターフェースを記述する JSON ドキュメントです。開発環境内でマニフェストを記述し、addons-admin CLI プラグインを使用して管理し、アドオンをマーケットプレイスに提出する準備ができたら、最終版のマニフェストを Heroku に送信します。
要件
- Heroku アカウント
- Heroku CLI のインストールと正常動作
- addons-admin CLI プラグイン
マニフェストの生成
まず、最新バージョンの addons-admin プラグインがあることを確認します。
$ heroku plugins:install addons-admin
新しいマニフェストを生成します。
$ heroku addons:admin:manifest:generate
# an interactive prompt will run, asking you basic questions about your new add-on
マニフェストには秘密が含まれています。ソース管理にチェックインしないでください。
マニフェストの更新
まず、ローカルにマニフェストをプルします。
$ heroku addons:admin:manifest:pull your-add-on-id-here
アドオンの ID (slug とも呼ばれる) は、現在の作業ディレクトリ内の addon-manifest.json ファイルに保存されます。
必要な変更を加えた後、push で公開します。
$ heroku addons:admin:manifest:push
このコマンドは addon-manifest.json の内容を、そのファイルの id 属性で識別されるアドオンにプッシュします。
マニフェストの例
{
"id": "errorbucket",
"name": "Errorbucket",
"cli_plugin_name": "heroku-errorbucket",
"api": {
"config_vars_prefix": "ERRORBUCKET",
"config_vars": [
"ERRORBUCKET_URL"
],
"password": "GqAGAmdrnkDFcvR9",
"sso_salt": "7CwqmJLEjv8YZTXK",
"regions": ["us","eu"],
"requires": ["log_input"],
"production": {
"base_url": "https://errorbucket.com/heroku/resources",
"sso_url": "https://errorbucket.com/sso/login"
},
"version": "3"
}
}
フィールド
id
アドオンの ID。この値は、ユーザーが「heroku addons:create [your-add-on]」と入力するときに入力する値です。プロビジョニング呼び出しを行うときの HTTP 基本認証にも使用されます。すべて小文字で入力する必要があり、スペースや句読点は使用できません。Heroku に最初にプッシュした後は変更できません。
name
アドオンの名前。
cli_plugin_name
アドオンサービスの Heroku CLI プラグインの npm パッケージ名。
api/config_vars_prefix
オプション。デフォルトは、アドオンの slug/ID を正規化したものです。たとえば、fast-db のプレフィックスは FAST_DB になります。マニフェスト内、およびプロビジョニングリクエストに対する応答内の環境設定はこのプレフィックスで始まり、1 つの _ を挟んで有効な識別子が続く形でなければなりません。
api/config_vars
プロビジョニング呼び出しで返される環境設定のリスト。通常は 1 つ (リソース URL) だけですが、1 つの環境設定では不十分な場合は複数の環境設定がサポートされます。
api/password
プロビジョニング呼び出しを行うときに Heroku が HTTP 基本認証で送信するパスワード。
api/sso_salt
Heroku 管理パネルとサービスの管理パネルの間でのシングルサインオンに使用される共有秘密鍵。
api/regions
アドオンでサポートされている地理的なリージョンのリスト。空にすることはできません。有効な Common Runtime リージョンは次のとおりです。
useu
有効な Private Spaces Runtime リージョンは次のとおりです。
dublinfrankfurtlondonmontrealmumbaioregonsingaporesydneytokyovirginia
現在、アドオンは少なくとも Common Runtime US リージョンをサポートする必要があります。EU および Private Spaces Runtime (Cedar 世代または Fir 世代) のサポートはオプションです。レイテンシー感度が低いなどの理由でアドオンがリージョンに依存せず、どのリージョンでも動作が変わらない場合は、メタリージョン * を使用して、現在または将来においてすべてのリージョンをサポートすることを指定できます。
api/requires
有効にする機能のリスト。有効にできる現在公開中の機能のリストは次のとおりです。
log_input -log_input_url フィールドをプロビジョニングリクエストに追加します。このフィールドは、独自のメッセージをログに書き込むために使用できます。syslog_drain -log_drain_token フィールドをプロビジョニングリクエストに追加します。ログドレイン URL で応答する場合、このトークンを使用してアプリケーションからのログを識別できます。詳細は、こちらの記事を参照してください。many_per_app - 開発者がアドオンの複数のインストールをプロビジョニングまたはアタッチできるようにします。この機能を有効にすると、顧客はアドオンのアタッチメントにカスタム名を付けることもできます。attachable - 開発者が複数のアプリ間でアドオンを共有できるようにします。many_per_appも有効になっている場合、開発者は同じアドオンに 1 つのアプリの複数のエイリアス (アタッチメント) を付与できます。
log_input と syslog_drain は、アドオンが Fir 世代のアプリにプロビジョニングされている場合は使用できません。詳細は、「パートナー向けアドオン世代互換性ガイド」 を参照してください。
api/version
パートナー API (Heroku でアドオンサービスとの通信に使用する HTTP インターフェース) のバージョン。値を指定しない場合、マニフェストはパートナー API 3 の現在のバージョンを想定します。マニフェストでこれを明示的に設定することをお勧めします。
api/production/base_url
Heroku API アクション (プロビジョニング、プロビジョニング解除、プラン変更) の本番環境エンドポイント。この URL の末尾にはパス /heroku/resources が常に必要であり、ない場合はサーバー側で自動的に追加されます。HTTPS を使用する必要があります。
api/production/sso_url
シングルサインオン用の本番環境エンドポイント。HTTPS を使用する必要があります。