Flex Gateway新着情報
Governance新着情報
Monitoring API Managerapi-catalog publish-asset
コマンドを使用して、API 定義を Exchange にパブリッシュできます。このコマンドを CI/CD パイプラインやカスタムスクリプトなどの自動化ツールに組み込み、API アセットのカタログ化を自動的にトリガーします。コマンドでは、--descriptor-file
オプションで指定されたファイルの情報を使用して API 定義をパブリッシュします。
> api-catalog publish-asset [flags]
このコマンドは、次のフラグに加えて、一般フラグと認証フラグを受け入れます。
フラグ | 説明 |
---|---|
--async |
パブリッシュジョブを非同期で実行します。 |
-d, --descriptor-file=descriptor-file または ANYPOINT_DESCRIPTOR_FILE 環境変数 |
デフォルト: ./catalog.yaml カタログ記述子ファイルの名前と場所。
「CLI を使用した記述子ファイルの作成」を参照してください。 |
--dry-run |
コマンドを実行して、記述子ファイルが有効であることを確認します。API はパブリッシュされません。 |
--force-publish |
比較せずに、コンテンツに関係なく Exchange に新しいバージョンのアセットを作成します。 |
--force-update-metadata |
コンテンツに関係なく、タグなどのアセットのメタデータを Exchange の最新バージョンに更新します。アセットは再パブリッシュされません。 |
--json |
実行結果を JSON 形式で出力します。 |
-s, --silent |
サイレントログを有効にします。 |
-t, --trigger-criteria=<descriptor-tag>:<value> --trigger-criteria=<descriptor-tag>:value |
このフラグは、記述子ファイルの 例:
「記述子 YAML スキーマ」を参照してください。 |
-v, --verbose |
冗長ログを有効にします。 |
--version-strategy-criteria=<descriptor-tag>:<value> --version-strategy-criteria=<descriptor-tag>:<value> |
このフラグは、記述子ファイルの 例:
「記述子 YAML スキーマ」を参照してください。 |
API 定義を記述する記述子ファイルを作成し、ファイルをパブリッシュしたり、API プロジェクトが保存されているファイルパスにコピーしたりします。「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
次のセクションのコマンド例は、いくつかのカタログフラグの使用方法を示しています。
次の例では、Anypoint Platform の US コントロールプレーンの組織に API をパブリッシュします。指定されていないフラグでは、デフォルト、ログイン情報設定ファイルの設定、環境変数の設定が使用されます。
> api-catalog publish-asset --organization 1234abc-b34a-7cd3-4s32-12345abc2345
この例は、次のフラグを使用する 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
コンテンツに関係なく新しいバージョンのアセットを 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
カスタムトリガー条件を使用すると、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
バージョン戦略条件を使用すると、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 スキーマ」を参照してください。
この例は、api-catalog publish-asset
コマンドを実行する Jenkins スクリプトを示しています。
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.
}
}
}
1 | 組織と記述子ファイルの値を定義する |
2 | api-catalog publish-asset コマンドを実行して、main Github 分岐で検出される API をパブリッシュする |