
はじめに
このブログをご覧いただいている方のなかには、SAP BTPでの開発にCF CLIを利用されている方も多いのではないかと思います。昨今、Cloud Foundryの環境ではAPIのバージョンアップが進んでおり、この変更に対応するためCF CLIについても最新バージョンであるv8への切り替えが強く推奨されていますが、古いバージョンでも一部のコマンドは従来通り実行できるため、気づかずにそのまま使い続けている方もいらっしゃるのではと思います。
今回は、筆者がバージョンアップに至った経緯とともにCF CLI v8へのバージョンアップ方法とその際の注意点をご紹介します。
CF CLIとは?
CF CLI(Cloud Foundry Command Line Interface)とは、Cloud Foundry環境のアプリケーション、サービス、およびユーザー管理をコマンドラインから行うためのSAP公式ツールです。BTP開発者の間ではご存知の方も多いと思うので、ここでは詳細な説明は省きます。
SAP公式のインストールガイドや、KYOSOのメンバーが過去に投稿している記事もありますので、詳しくはそちらをご確認ください。
参考文献
SAP Tutorial – Install the Cloud Foundry Command Line Interface (CLI)
Qiita – ローカルからSAP CloudPlatform CF環境へデプロイする
KYOSOブログ – 【SAP BTP/BAS】超お手軽!CFコマンドとシェルスクリプトで自動デプロイを構築
バージョンアップのきっかけ:V2 API Rate Limitエラー
バージョンアップを決断するきっかけとなったのは、既存環境で発生したコマンド実行エラーでした。
BTP環境にSAP HANA Cloud(データベース)を構築しているのですが、利用者のいない時間帯にランニングコストがかかることを防ぐため、平日の日中のみの稼働に制御することを目的にCF CLIを使用しています。具体的には、CF CLIのSAP HANA Cloudインスタンス起動/停止コマンドをジョブスケジュール化して、自動での起動/停止を行っていました。
ところが、ある日稼働状況を確認すると、cf login は問題なく実行できているものの、HANA Cloudの起動コマンドに失敗していました。
Cloud Foundryへのログイン → 成功
sudo cf login -a [BTP環境URL] -u [ユーザ名]-p [パスワード] -o [サブアカウントID] -s [スペース名]
HANA Cloudの起動 → 失敗
sudo cf update-service [HANAインスタンス名] -c '{"data": {"serviceStopped":false}}'
エラー内容
Server error, status code: 429, error code: 10018, message: Rate Limit of V2 API Exceeded. Please consider using the V3 APICloud Foundry APIとCF CLIの相関関係
エラー内容から、Cloud FoundryのV2 APIに対するリクエスト制限(Rate Limit)がかかっていることが推測できます。また、メッセージにはV3 APIの使用が推奨されていました。
そこで、cf login時に[WARNING]として出力されていたメッセージから、Git Hub – CF CLI(最新バージョン)を参照すると、CLIの最新バージョンとしてv8系がリリースされていることを確認しました。
Cloud Foundry APIのバージョンと CF CLIのバージョンが関係しているのではないかと考え調査したところ、Cloud Foundry API V3 に対応しているのはv8であり、v7およびv6はメンテナンスもリリースも終了しているということが、以下の公式ドキュメントから分かりました。
Git Hub – CF CLI(Getting Startedの項)
(引用)
The v8 cf CLI is backed by the v3 CC API (with the exception of plugins). See our v8 documentation for more information.
Note: v7 and v6 CLI versions are no longer maintained or released.
案の定、実行環境のCF CLIはv7系だったため、Cloud Foundry API V3への対応のためCF CLI v8へのバージョンアップを実施することにしました。

バージョンアップ時の第2の問題
CF CLI v7からv8へのバージョンアップを、以下の公式ガイドを参考に実施しました。
Version Switching Guide
CF CLI v7の削除
sudo yum remove cf7-cli

CF CLI v8のインストール
sudo yum install cf8-cli
ところが、v8のインストール時に以下のエラーが発生し、失敗してしまいました。
エラー内容
https://repo.ius.io/7/x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.解決策:IUSリポジトリの無効化
前項のエラーについては、パッケージ管理ツール(今回の場合yum)が参照しているリポジトリ(https://repo.ius.io/7/x86_64/repodata/repomd.xml)が、すでにCentOS 7向けのサポートを終了しアーカイブ化されていたため、参照できず404エラーが発生したことが原因でした。
これはyumの参照リポジトリに起因するエラーであるため、今後他のパッケージをインストールする際にも発生する懸念があります。そのため、参照不可になっているIUS リポジトリを無効化することでエラーを回避しました。
実行コマンド
sudo yum-config-manager --disable ius
この後にもう一度CF CLI v8のインストールを実行すると無事成功!
実行コマンド
sudo yum install cf8-cli

バージョン確認でv8が導入されていることも確認出来ました。
実行コマンド
cf version
その後、CF CLIのHANA Cloudの起動コマンドも無事実行できました。
実行コマンド
sudo cf update-service [HANAインスタンス名] -c '{"data": {"serviceStopped":false}}'
まとめ
- Cloud Foundry API V3への移行に伴い、CF CLI v7/v6ユーザーはv8へのバージョンアップが必須。
- v8へ切り替えないと、本記事のように既に一部コマンドが利用できなくなっている可能性がある。
- IUS リポジトリのアーカイブ化によるインストールエラーについては、リポジトリの無効化設定により回避が可能。
さいごに
今回は、CF CLI V8へのバージョンアップの必要性と、実行およびバージョンアップに伴って発生した問題の解決策をご紹介しました。SAP BTPのようなエンタープライズプラットフォームでは、ツールのバージョンアップや環境の変化に迅速に対応することが、安定稼働と効率的な開発の鍵となります。もし同様のエラーに直面された際は、本記事の解決策が皆様の課題解決の一助となれば幸いです。
投稿者プロフィール

-
2015年入社。会計管理システムやBIシステムのパッケージ開発を経て、現在はSAP BTP案件にて開発リーダーを担当しています。
【主な技術領域】
SAP BTP関連(Fioriアプリケーションほか)、SAP Analytics Cloud、AWS
【イベント参加実績】
2022年 JSUG INFO 企画編集委員
2024年 11月 SAUG-x 2024(オーストラリア・メルボルン)
2025年 2月 SAP Inside Track TOKYO 2025(登壇)



