Azure Service Fabric CLI

Azure Service Fabric 命令列介面 (CLI) 是一個命令列公用程式,用於操作和管理 Azure Service Fabric 實體。 Service Fabric CLI 可以搭配 Windows 或 Linux 叢集使用。 Service Fabric CLI 可在支援 Python 的任何平台上執行。

重要

有兩個 CLI 公用程式用來與 Service Fabric 互動。 Azure CLI 用來管理 Azure 資源,例如 Azure 託管的 Service Fabric 叢集。 Service Fabric CLI 用來直接連線到 Service Fabric 叢集 (不論裝載於何處) 及管理叢集、應用程式和服務。

必要條件

安裝之前,請確定您的環境已安裝 Python 和 pip。 如需詳細資訊,請參閱 pip 快速入門文件和正式的 Python 安裝文件

CLI 支援 Python 版本 2.7 和 3.6 +,含建議的 Python 3.x。

Service Fabric 目標執行階段

Service Fabric CLI 旨在支援 Service Fabric SDK 的最新執行階段版本。 使用下表來判斷要安裝的 CLI 版本:

CLI 版本 支援的執行階段版本
最新 (~=10) 最新 (~=7.1)
9.0.0 7.1
8.0.0 6.5
7.1.0 6.4
6.0.0 6.3
5.0.0 6.2
4.0.0 6.1
3.0.0 6.0
1.1.0 5.6, 5.7

您可以選擇性地指定要安裝的 CLI 目標版本,方法是在 pip install 命令加上尾碼 ==<version>。 例如,1.1.0 版的語法為:

pip install -I sfctl==1.1.0

在必要時,將下列 pip install 命令取代為先前所述的命令。

如需 Service Fabric CLI 版本的詳細資訊,請參閱 GitHub 文件

安裝 pip、Python 和 Service Fabric CLI

有許多方法可在您的平台上安裝 pip 和 Python。 以下這些步驟可以使用 Python 3 與 pip 快速設定主要作業系統。

Windows

針對 Windows 10、Windows Server 2016 和 Windows Server 2012 R2,請使用標準官方安裝指示。 Python 安裝程式預設也會安裝 pip。

  1. 前往官方 Python 下載頁面並下載最新版的 Python 3.x。

  2. 開始安裝程式。

  3. 在提示字元的底部,選取 [將 Python 3.x 新增至路徑]

  4. 選取 [立即安裝],並完成安裝。

現在您可以開啟新的命令視窗,並取得 Python 和 pip 的版本。

python --version
pip --version

然後執行下列命令來安裝 Azure Service Fabric CLI (sfctl) 及檢視 CLI 說明頁面:

pip install sfctl
sfctl -h

適用於 Linux 的 Ubuntu 和 Windows 子系統

若要安裝 Service Fabric CLI,請執行下列命令:

sudo apt-get install python3
sudo apt-get install python3-pip
pip3 install sfctl

然後您可以測試安裝:

sfctl -h

如果您收到找不到命令這類的錯誤:

sfctl: command not found

請確定可從 $PATH 存取 ~/.local/bin

export PATH=$PATH:~/.local/bin
echo "export PATH=$PATH:~/.local/bin" >> .shellrc

如果使用不正確的資料夾權限在適用於 Linux 的 Windows 子系統上安裝失敗,可能需要以提高的權限再試一次:

sudo pip3 install sfctl

Red Hat Enterprise Linux 7.4 (Service Fabric 預覽支援)

若要在 Red Hat 上安裝 Service Fabric CLI,請執行下列命令:

sudo yum install -y python38
sudo yum install python38-setuptools
sudo easy_install-3.4 pip
sudo pip3 install sfctl

若要測試安裝,您可以參考適用於 Linux 的 Ubuntu 和 Windows 子系統一節中所述的步驟

MacOS

對於 MacOS,建議使用 HomeBrew 套件管理員。 如果尚未安裝 HomeBrew,可執行下列命令來加以安裝:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然後從終端機安裝最新 Python 3.x、pip 和 Service Fabric CLI,方法是執行下列命令:

brew install python3
pip3 install sfctl
sfctl -h

CLI 語法

命令前面一律會加上 sfctl。 如需有關所有可用命令的一般資訊,請使用 sfctl -h。 如需單一命令的說明,請使用 sfctl <command> -h

命令會遵循可重複的結構,而命令的目標前面會加上動詞命令或動作。

sfctl <object> <action>

在此範例中,<object><action> 的目標。

選取叢集

在您執行任何作業之前,必須選取要連線的叢集。 例如,若要選取並連線到名為 testcluster.com 的叢集,請執行下列命令:

警告

請勿於生產環境中使用不安全的 Service Fabric 叢集。

sfctl cluster select --endpoint http://testcluster.com:19080

叢集端點前面必須加上 httphttps。 它必須包含 HTTP 閘道的連接埠。 此連接埠和位址等同於 Service Fabric Explorer URL。

對於使用憑證保護的叢集,您可以指定 PEM 編碼的憑證。 此憑證可以指定為單一檔案或憑證和金鑰組。 若自我簽署憑證不是由 CA 所簽署,您可傳遞 --no-verify 選項以略過 CA 驗證。

sfctl cluster select --endpoint https://testsecurecluster.com:19080 --pem ./client.pem --no-verify

如需詳細資訊,請參閱連線到 Azure Service Fabric 叢集

基本作業

叢集連線資訊會跨多個 Service Fabric CLI 工作階段保存。 選取 Service Fabric 叢集後,您可以在此叢集上執行任何 Service Fabric 命令。

例如,若要取得 Service Fabric 叢集健康情況,請使用下列命令:

sfctl cluster health

此命令會導致下列輸出:

{
  "aggregatedHealthState": "Ok",
  "applicationHealthStates": [
    {
      "aggregatedHealthState": "Ok",
      "name": "fabric:/System"
    }
  ],
  "healthEvents": [],
  "nodeHealthStates": [
    {
      "aggregatedHealthState": "Ok",
      "id": {
        "id": "66aa824a642124089ee474b398d06a57"
      },
      "name": "_Test_0"
    }
  ],
  "unhealthyEvaluations": []
}

秘訣與疑難排解

以下是用於解決一般問題的某些建議和秘訣。

將憑證從 PFX 轉換為 PEM 格式

Service Fabric CLI 支援以 PEM (.pem 副檔名) 檔案作為用戶端憑證。 如果您從 Windows 使用 PFX 檔案,則必須將這些憑證轉換成 PEM 格式。 若要將 PFX 檔案轉換為 PEM 檔案,請使用下列命令︰

openssl pkcs12 -in certificate.pfx -out mycert.pem -nodes

同樣地,若要從 PEM 檔案轉換為 PFX 檔案,您可以使用下列命令 (在此處未提供任何密碼):

openssl  pkcs12 -export -out Certificates.pfx -inkey Certificates.pem -in Certificates.pem -passout pass:'' 

如需詳細資訊,請參閱 OpenSSL 文件

連線問題

某些作業可能會產生下列訊息:

Failed to establish a new connection

確認指定的叢集端點可以使用且正在接聽。 另外確認 Service Fabric Explorer 的 UI 可在該主機和連接埠上使用。 若要更新端點,請使用 sfctl cluster select

詳細記錄

當您偵錯或回報問題時,詳細記錄通常很有幫助。 --debug 旗標可增加輸出的詳細程度。

命令的說明和語法

如需特定命令或一組命令的說明,請使用 -h 旗標。

sfctl application -h

以下是另一個範例:

sfctl application create -h

更新 Service Fabric CLI

若要更新 Service Fabric CLI,請執行下列命令 (以 pip3 取代 pip,取決於您在原始安裝期間的選擇):

pip uninstall sfctl
pip install sfctl

下一步