Интерфейс командной строки Azure Service Fabric

Интерфейс командной строки Azure Service Fabric — это служебная программа командной строки для взаимодействия с сущностями Service Fabric и управления ими. Интерфейс командной строки Service Fabric можно использовать с кластерами Windows и Linux. Он выполняется на любой платформе, поддерживающей Python.

Важно!

Для работы с Service Fabric доступны две служебные программы CLI. Azure CLI используется для управления ресурсами Azure, включая кластер Service Fabric, размещенный в Azure. Service Fabric CLI используется для непосредственного подключения к кластеру Service Fabric (независимо от того, где он размещается), а также для управления кластером, приложениями и службами.

Предварительные требования

Прежде чем начать установку, убедитесь, что в вашей среде установлены Python и pip. Дополнительные сведения см. в кратком руководстве по началу работы с pip и официальной документации по установке Python.

CLI поддерживает версии Python 2.7 и 3.6 и более поздние, рекомендуется версия Python 3 и выше.

Целевая среда выполнения Service Fabric

Интерфейс командной строки Service Fabric используется для поддержки последней версии среды выполнения пакета SDK для Service Fabric. Воспользуйтесь следующей таблицей, чтобы определить, какую версию интерфейса командной строки следует установить.

Версия интерфейса командной строки Поддерживаемая версия среды выполнения
Последняя (~ = 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

При необходимости можно указать целевую версию интерфейса командной строки для установки, добавив к команде pip install суффикс ==<version>. Например, для версии 1.1.0 синтаксис будет выглядеть следующим образом:

pip install -I sfctl==1.1.0

При необходимости замените следующую команду pip install ранее упомянутой командой.

Дополнительные сведения о выпусках интерфейса командной строки Service Fabric см. в документации GitHub.

Установка pip, Python и интерфейса командной строки Service Fabric

Существует много способов установки pip и Python на вашей платформе. Ниже приведены действия для быстрой установки Python 3 и pip, которые подходят для большинства операционных систем.

Windows

Для Windows 10, Windows Server 2016 и Windows Server 2012 R2 используйте стандартные официальные инструкции по установке. Установщик Python также по умолчанию устанавливает pip.

  1. Перейдите на официальную страницу загрузок Python и скачайте последний выпуск Python 3.x.

  2. Запустите установщик.

  3. В нижней части окна запроса выберите Add Python 3.x. to PATH (Добавить Python 3.x. в PATH).

  4. Выберите Install Now (Установить сейчас) и завершите установку.

Теперь можно открыть новое командное окно, чтобы узнать версию Python и pip.

python --version
pip --version

Затем выполните следующую команду, чтобы установить CLI Azure Service Fabric (sfctl) и просмотреть страницу справки CLI:

pip install sfctl
sfctl -h

Подсистема Ubuntu и Windows для Linux

Чтобы установить интерфейс командной строки Service Fabric, выполните следующие команды.

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

Затем можно проверить установку, выполнив следующую команду.

sfctl -h

Если вы получили ошибку, что команда не найдена, например:

sfctl: command not found

Убедитесь, что ~/.local/bin доступен из $PATH.

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

Если установка подсистемы Windows для Linux завершается сбоем из-за неверных разрешений папки, может потребоваться повторить попытку с повышенным уровнем разрешений.

sudo pip3 install sfctl

Red Hat Enterprise Linux 7.4 (поддержка предварительной версии Service Fabric)

Чтобы установить интерфейс командной строки Service Fabric в Red Hat, выполните следующие команды:

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

Чтобы протестировать установку, выполните действия из раздела Подсистема Ubuntu и Windows для Linux.

MacOS

Для MacOS мы рекомендуем использовать диспетчер пакетов HomeBrew. Если диспетчер HomeBrew еще не установлен, установите его, выполнив следующую команду:

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

Затем с помощью терминала установите последнюю версию Python 3.x., pip и интерфейс командной строки Service Fabric, выполнив следующие команды:

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

Конечная точка кластера должна иметь префикс http или https. Она должна включать порт для шлюза HTTP. Этот порт и адрес аналогичны URL-адресу Service Fabric Explorer.

Для кластеров, защищенных с помощью сертификата, можно указать сертификат в кодировке PEM. Сертификат можно указать как один файл или как пару "сертификат — ключ". Если это самозаверяющий сертификат, который не подписан центром сертификации (ЦС), вы можете передать параметр --no-verify для обхода проверки ЦС.

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

Дополнительные сведения см. в статье Безопасное подключение к кластеру.

Базовые операции

Сведения о подключении кластера сохраняются между различными сеансами интерфейса командной строки Service Fabric. Выбрав кластер 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 поддерживает клиентские сертификаты, такие как PEM-файлы. При использовании PFX-файлов из Windows эти сертификаты необходимо преобразовать в формат 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. Обновите конечную точку с помощью sfctl cluster select.

Подробные журналы

Подробные журналы часто полезны при отладке или при сообщении о проблеме. Флаг --debug повышает детализацию выходных данных.

Справка и синтаксис для команд

Для получения справки по определенной команде или группе команд используйте флаг -h.

sfctl application -h

Вот еще один пример:

sfctl application create -h

Обновления интерфейса командной строки Service Fabric

Чтобы обновить интерфейс командной строки Service Fabric, выполните следующие команды (замените параметр pip на pip3 в зависимости от того, какой вы выбрали во время первоначальной установки):

pip uninstall sfctl
pip install sfctl

Дальнейшие действия