---
schema_version: "1"
id: 375716dcae8c051bf31663c6939152ac64698de58539f189e4de5e832f6d4dae
title: API カタログ CLI を使用したアセットのパブリッシュ
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/exchange/apicat-publish-using-api-catalog-cli.md
canonical_url: https://docs.mulesoft.com/jp/exchange/apicat-publish-using-api-catalog-cli
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 6af3aafb90947d496f09c96865f47376ed30b35ec0b5be8e1667bca5adde30fa
description: MuleSoft Documentation Site
latest: true
---
# API カタログ CLI を使用したアセットのパブリッシュ

`api-catalog publish-asset`​ コマンドを使用して、API 定義を Exchange にパブリッシュできます。このコマンドを CI/CD パイプラインやカスタムスクリプトなどの自動化ツールに組み込み、API アセットのカタログ化を自動的にトリガーします。コマンドでは、​`--descriptor-file`​ オプションで指定されたファイルの情報を使用して API 定義をパブリッシュします。

### [](#publish-asset-command)api-catalog publish-asset

\> api-catalog publish-asset \[flags\]

このコマンドは、次のフラグに加えて、​[一般フラグと認証フラグ](https://docs.mulesoft.com/jp/exchange/apicat-use-api-catalog-cli#common-options)​を受け入れます。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 80%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">フラグ</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>--async</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>パブリッシュジョブを非同期で実行します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>-d, --descriptor-file=descriptor-file</p>
</div>
<div class="paragraph">
<p>または</p>
</div>
<div class="paragraph">
<p>ANYPOINT_DESCRIPTOR_FILE​ 環境変数</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>デフォルト: ./catalog.yaml</p>
</div>
<div class="paragraph">
<p>カタログ記述子ファイルの名前と場所。</p>
</div>
<div class="ulist">
<ul>
<li>
<p>ファイルが存在しない場合、アセットはカタログ化されません。</p>
</li>
<li>
<p>ファイルが存在しても空の場合、このコマンドはカタログ記述子 YAML の結果を作成して出力します。現在の作業ディレクトリに関連する完全なディレクトリツリーで見つかったすべての API 定義のカタログ情報を出力します。</p>
</li>
<li>
<p>有効な YAML ファイルが存在する場合、このコマンドはアセットを指定されたとおりにカタログ化します。</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>​<a href="https://docs.mulesoft.com/jp/exchange/apicat-create-descriptor-file-cli#create-desc-file-cli" class="xref page">「CLI を使用した記述子ファイルの作成」</a>​を参照してください。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>--dry-run</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>コマンドを実行して、記述子ファイルが有効であることを確認します。API はパブリッシュされません。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>--force-publish</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>比較せずに、コンテンツに関係なく Exchange に新しいバージョンのアセットを作成します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>--force-update-metadata</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>コンテンツに関係なく、タグなどのアセットのメタデータを Exchange の最新バージョンに更新します。アセットは再パブリッシュされません。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>--json</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>実行結果を JSON 形式で出力します。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>-s, --silent</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>サイレントログを有効にします。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>-t, --trigger-criteria=&lt;descriptor-tag&gt;:&lt;value&gt; --trigger-criteria=&lt;descriptor-tag&gt;:value</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>このフラグは、記述子ファイルの ​<code>triggerConditions</code>​ セクションと連携して機能します。​<code>api-catalog publish-asset</code>​ コマンドを実行するたびに、トリガー値が記述子ファイルのトリガー条件値と比較され、記述子ファイルに記述されている API をパブリッシュするかどうかが決定されます。複数の条件と照合するには、条件ごとに個別の ​<code>--trigger-criteria</code>​ フラグを指定します。API をパブリッシュするには、記述子ファイルに設定されたすべてのトリガー条件が ​<code>--trigger-criteria</code>​ フラグ値で照合される必要があります。</p>
</div>
<div class="paragraph">
<p>例:</p>
</div>
<div class="paragraph">
<p><code>--trigger-criteria=branch:main --trigger-criteria=anytag:release/ --trigger=user:admin</code></p>
</div>
<div class="paragraph">
<p><a href="https://docs.mulesoft.com/jp/exchange/apicat-create-descriptor-file-manually#descriptor-yaml" class="xref page">「記述子 YAML スキーマ」</a>​を参照してください。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>-v, --verbose</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>冗長ログを有効にします。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>--version-strategy-criteria=&lt;descriptor-tag&gt;:&lt;value&gt; --version-strategy-criteria=&lt;descriptor-tag&gt;:&lt;value&gt;</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>このフラグは、記述子ファイルの ​<code>versionStrategyConditions</code>​ セクションと連携して機能します。​<code>api-catalog publish-asset</code>​ コマンドは、バージョン戦略条件値を記述子ファイル内のバージョン戦略条件値と比較して、API のパブリッシュに使用するバージョン戦略を決定します。複数の条件と照合するには、条件ごとに個別の ​<code>--version-strategy-criteria</code>​ フラグを指定します。</p>
</div>
<div class="paragraph">
<p>例:</p>
</div>
<div class="paragraph">
<p><code>--version-strategy-criteria=branch:main --version-strategy-criteria=anytag:release/ --version-strategy-criteria=user:admin</code></p>
</div>
<div class="paragraph">
<p><a href="https://docs.mulesoft.com/jp/exchange/apicat-create-descriptor-file-manually#descriptor-yaml" class="xref page">「記述子 YAML スキーマ」</a>​を参照してください。</p>
</div></div></td>
</tr>
</tbody>
</table>

## [](#始める前に)始める前に

API 定義を記述する記述子ファイルを作成し、ファイルをパブリッシュしたり、API プロジェクトが保存されているファイルパスにコピーしたりします。​[「CLI を使用した記述子ファイルの作成」](https://docs.mulesoft.com/jp/exchange/apicat-create-descriptor-file-cli#create-desc-file-cli)​を参照してください。

CLI を使用して API 定義をパブリッシュする手順は、次のとおりです。

- `api-catalog publish-asset`​ コマンドを実行します。次の例では、​`catalog.yaml`​ ファイルで記述された API 定義をパブリッシュします。
    
    \> api-catalog publish-asset -d catalog.yaml --host=anypoint.mulesoft.com --organization=1234abc-b34a-7cd3-4s32-12345abc2345 --username=myAnyPtAccount --password=myPwd@4!myacct

次のセクションのコマンド例は、いくつかのカタログフラグの使用方法を示しています。

- [デフォルト設定を使用してアセットをパブリッシュする](#default-settings)
- [Dry Run を実行して記述子ファイルを検証する](#dry-run)
- [コンテンツに関係なくアセットをパブリッシュする](#force-publish)
- [条件を使用してパブリッシュをトリガーする](#trigger-conditions)
- [条件を使用してバージョン戦略を設定する](#versionStrategyConditions)
- [Jenkins スクリプトを使用してパブリッシュする](#jenkins-script)​

## [](#default-settings)デフォルト設定を使用してアセットをパブリッシュする

次の例では、Anypoint Platform の US コントロールプレーンの組織に API をパブリッシュします。指定されていないフラグでは、デフォルト、ログイン情報設定ファイルの設定、環境変数の設定が使用されます。

\> api-catalog publish-asset --organization 1234abc-b34a-7cd3-4s32-12345abc2345

## [](#dry-run)Dry Run を実行して記述子ファイルを検証する

この例は、次のフラグを使用する ​`api-catalog publish-asset`​ コマンドを示しています。

- \--dry-run: コマンドを実行して、記述子ファイルが有効であることを検証しますが、API はパブリッシュしません。
- \--verbose: 結果の最大情報を表示します。

このコマンド例では、標準出力を ​`mycatdryrun.log`​ に送信します。

\> api-catalog publish-asset --host=anypoint.mulesoft.com -d catalog.yaml --organization=1234abc-b34a-7cd3-4s32-12345abc2345 --client\_id=1787c36ab544466698e380131040faad --client\_secret=2dA616efca1E4181A2A77BBF046868BE --dry-run --verbose >> mycatdryrun.log

## [](#force-publish)コンテンツに関係なくアセットをパブリッシュする

コンテンツに関係なく新しいバージョンのアセットを Exchange にパブリッシュするには、​`--force-publish`​ フラグを使用します。

この例は、これらの両方のフラグを使用する ​`api-catalog publish-asset`​ コマンドを示しています。指定されていないフラグでは、デフォルト、ログイン情報設定ファイルの設定、環境変数の設定が使用されます。

\> api-catalog publish-asset --host=anypoint.mulesoft.com --descriptor-file=mydescriptor.yaml --organization=1234abc-b34a-7cd3-4s32-12345abc2345 --force-publish

## [](#trigger-conditions)条件を使用してパブリッシュをトリガーする

カスタムトリガー条件を使用すると、API カタログ ​`publish-assets`​ が CI/CD パイプラインまたはスクリプトの一部として実行されるときに API をパブリッシュするかどうかを制御できます。この例は、記述された API をパブリッシュするかどうかを制御するために ​`--trigger-criteria`​ フラグが記述子ファイルのトリガー条件にどのように関連付けられるのかを示しています。トリガー条件が API レベルで設定されている場合、その設定はグローバルレベルで設定された条件よりも優先されます。

### [](#記述子ファイルのトリガー条件の例)記述子ファイルのトリガー条件の例

グローバルレベルの ​`mydescriptor.yaml`​ 記述子ファイルの ​`triggerConditions`​ セクションの例を次に示します。

* * *

triggerConditions:
 ref:
  - main
 tags:
  - migrate
  - republish
 status:
  - complete
  - ready

* * *

### [](#パブリッシュをトリガーする例)パブリッシュをトリガーする例

次のコマンドは、トリガーオプション値が ​`mydescriptor.yaml`​ 記述子ファイルのすべてのグローバルトリガー条件と一致するため、API のパブリッシュをトリガーします。

\> api-catalog publish-asset --host=anypoint.mulesoft.com -d mydescriptor.yaml --organization=1234abc-b34a-7cd3-4s32-12345abc2345 --username=myAnyPtAccount --password=myPwd@4!myacct --trigger-criteria=ref:main --trigger-criteria=tags:migrate --trigger-criteria=status:complete

### [](#パブリッシュをトリガーしない例)パブリッシュをトリガーしない例

次のコマンドは、​`ref`​ のトリガーオプション値が ​`main`​ ではなく ​`test`​ であるため、API のパブリッシュをトリガーしません。すべてのトリガー値が対応するグローバルトリガー条件と一致しないため、API はパブリッシュされません。

\> api-catalog publish-asset --host=anypoint.mulesoft.com -d mydescriptor.yaml --organization=1234abc-b34a-7cd3-4s32-12345abc2345 --username=myAnyPtAccount --password=myPwd@4!myacct --trigger-criteria=ref:test --trigger-criteria=tags:migrate --trigger-criteria=status:complete

## [](#versionStrategyConditions)条件を使用してバージョン戦略を設定する

バージョン戦略条件を使用すると、API カタログ ​`publish-asset`​ コマンドが CI/CD パイプラインまたはスクリプトの一部として実行されるときにアセットのバージョンを設定するかどうかを制御できます。この例は、記述された API のバージョン戦略を設定するために ​`--version-strategy-criteria`​ フラグが記述子ファイルのバージョン戦略条件にどのように関連付けられるのかを示しています。バージョン戦略条件が API レベルで設定されている場合、その設定はグローバルレベルで設定された条件よりも優先されます。条件の値が複数のバージョン戦略と一致する場合、コマンドでエラーが発生します。

### [](#記述子ファイルのバージョン戦略条件の例)記述子ファイルのバージョン戦略条件の例

`mydescriptor.yaml`​ 記述子ファイルの ​`versionStrategyConditions`​ セクションの例を次に示します。

versionStrategyConditions:
patchIncrease:
branch:
 ‘main’
author:
 ‘admin’
snapshot:
branch:
‘test’
‘Develop’

### [](#パブリッシュ中にバージョン戦略を設定する例)パブリッシュ中にバージョン戦略を設定する例

次のコマンドは、オプション値が ​`mydescriptor.yaml`​ 記述子ファイルの複数の条件と一致するため、パブリッシュ中に複数のバージョン戦略を設定します。

\> api-catalog publish-asset --host=anypoint.mulesoft.com -d mydescriptor.yaml --organization=1234abc-b34a-7cd3-4s32-12345abc2345 --username=myAnyPtAccount --password=myPwd@4!myacct --version-strategy-criteria=branch:main --version-strategy-criteria=author:admin --version-strategy-criteria=branch:test --version-strategy-criteria=branch:Develop

結果のバージョン戦略は次のようになります。

- パッチの増分 (作成者が ​`admin`​ の ​`main`​ 分岐の API の場合)。
- スナップショット (​`test`​ および ​`Develop`​ 分岐の API の場合)。

### [](#パブリッシュ中にバージョン戦略を設定しない例)パブリッシュ中にバージョン戦略を設定しない例

次のコマンドは、どの値も対応する条件と一致しないため、パブリッシュ中にバージョン戦略を設定しません。記述子ファイルの ​`versionStrategy`​ タグで他の値が設定されていない場合、バージョン戦略はデフォルトの ​`patchIncrease`​ になります。

\> api-catalog publish-asset --host=anypoint.mulesoft.com -d mydescriptor.yaml --organization=1234abc-b34a-7cd3-4s32-12345abc2345 -u myAnyPtAccount -p myPwd@4!myacct ----version-strategy-criteria=branch:abc ----version-strategy-criteria=author:dev ----version-strategy-criteria=branch:xyz ----version-strategy-criteria=branch:pop

バージョン戦略とバージョン戦略条件についての詳細は、​[「記述子 YAML スキーマ」](https://docs.mulesoft.com/jp/exchange/apicat-create-descriptor-file-manually)​を参照してください。

## [](#jenkins-script)Jenkins スクリプトを使用してパブリッシュする

この例は、​`api-catalog publish-asset`​ コマンドを実行する Jenkins スクリプトを示しています。

```java
pipeline {
    agent any
    environment {
        ANYPOINT_ORG_ID = '1234abc-b34a-7cd3-4s32-12345abc2345'
        CATALOG_DESCRIPTOR = './descriptor.yaml' (1)
     }
     stages {
        stage('git checkout') {
            steps {
                git url: 'git@github.com:mygitlocation/api-catalog-cli.git'
                // additional checkout tasks
            }
        }
        stage('Build Artifacts') {
            steps {
                 // building
            }
        }
        stage('API Cataloging') {
            steps {
                 withCredentials([
                    usernamePassword(credentialsId: 'my-anypoint-creds',
                    usernameVariable: 'ANYPOINT_USERNAME',
                    passwordVariable: 'ANYPOINT_PASSWORD')
                ]) {
                    sh 'api-catalog-cli publish-asset -d $CATALOG_DESCRIPTOR --organization=$ANYPOINT_ORG_ID --host=anypoint.mulesoft.com/ --trigger-criteria=branch:main' (2)
                }
            }
        }
         stage('Deploy') {
            steps {
                // Any deployment tasks to be performed, here.
            }
        }
    }
```

<table><tbody><tr><td><i class="conum" data-value="1"></i><b>1</b></td><td>組織と記述子ファイルの値を定義する</td></tr><tr><td><i class="conum" data-value="2"></i><b>2</b></td><td><code>api-catalog publish-asset</code>​ コマンドを実行して、​<code>main</code>​ Github 分岐で検出される API をパブリッシュする</td></tr></tbody></table>

## [](#関連情報)関連情報

- [コマンドおよびフラグの一般的な使用](https://docs.mulesoft.com/jp/exchange/apicat-use-api-catalog-cli)
- [CLI を使用した記述子ファイルの作成または更新](https://docs.mulesoft.com/jp/exchange/apicat-create-descriptor-file-cli)
- [手動での記述子ファイルの作成または更新](https://docs.mulesoft.com/jp/exchange/apicat-create-descriptor-file-manually)