アドオンマニフェスト
最終更新日 2024年02月06日(火)
アドオンマニフェストは、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-slug-here
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 [youraddon]」と入力するときにユーザーが入力するものです。すべて小文字で、スペースや句読点を含みません。これは、Heroku への最初のプッシュ後に変更できません。プロビジョニング呼び出しを行うときの HTTP 基本認証にも使用されます。
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
アドオンでサポートされている地理的なリージョンのリスト。空にすることはできません。有効な Cedar (標準スタック) リージョンは次のとおりです。
us
eu
有効な Dogwood (Private Spaces) リージョンは次のとおりです。
dublin
frankfurt
london
montreal
mumbai
oregon
singapore
sydney
tokyo
virginia
現時点で、アドオンでは最低限、Cedar US リージョンをサポートする必要があります。EU および Dogwood のサポートは任意です。(レイテンシー感度が低いなどの理由で) アドオンがリージョンに依存せず、どのリージョンでも動作が変わらない場合、メタリージョン *
を使用して、現在または将来のあらゆるリージョンの完全サポートを指定できます。
api/requires
有効にする機能のリスト。有効にできる現在公開中の機能のリストは次のとおりです。
log_input
-log_input_url
フィールドをプロビジョニングリクエストに追加します。このフィールドは、独自のメッセージをログに書き込むために使用できます。syslog_drain
-log_drain_token
フィールドをプロビジョニングリクエストに追加します。ログドレイン URL で応答する場合、このトークンを使用してアプリケーションからのログを識別できます。詳細は、こちらの記事を参照してください。many_per_app
- 開発者がアドオンの複数のインストールをプロビジョニングまたはアタッチできるようにします。これが有効な場合、顧客はアドオンのアタッチメントにカスタムの名前を付けることもできます。attachable
- 開発者が複数のアプリ間でアドオンを共有できるようにします。many_per_app
も有効になっている場合、開発者は同じアドオンに 1 つのアプリの複数のエイリアス (アタッチメント) を付与できます。
api/version
パートナー API (Heroku でアドオンサービスとの通信に使用する HTTP インターフェース) のバージョン。値が指定されていない場合、マニフェストでは 1
を想定しますが、パートナー API の現在のバージョンは 3
であるため、マニフェストでこの値を設定することをお勧めします。
api/production/base_url
Heroku API アクション (プロビジョニング、プロビジョニング解除、プラン変更) の本番環境エンドポイント。この URL の末尾にはパス /heroku/resources
が常に必要であり、ない場合はサーバー側で自動的に追加されます。HTTPS を使用する必要があります。
api/production/sso_url
シングルサインオン用の本番環境エンドポイント。HTTPS を使用する必要があります。