在 Linux 上准备开发环境

若要在 Linux 开发计算机上部署和运行 Azure Service Fabric 应用程序,请安装运行时和常用 SDK。 还可以安装用于 Java 和 .NET Core 开发的可选 SDK。

本文中的步骤假设你在 Linux 上进行本地安装,或者使用 Service Fabric OneBox 容器映像(即 mcr.microsoft.com/service-fabric/onebox:u18)。

可以使用 Azure Service Fabric 命令行界面 (CLI) 来管理托管在云中或本地的 Service Fabric 实体。 有关如何安装 CLI 的信息,请参阅设置 Service Fabric CLI

先决条件

  • 确保使用的是受支持的 Linux 版本

  • 安装 apt-transport-https 包:

    sudo apt-get install apt-transport-https
    

安装方法

更新 APT 源

若要通过 apt-get 命令行工具安装 SDK 和关联的运行时包,必须首先更新高级打包工具 (APT) 源。

脚本安装

为方便起见,我们提供了一个脚本,用于连同 sfctl CLI 一起安装 Service Fabric 运行时和 Service Fabric 通用 SDK。 运行该脚本即认为你同意所要安装的所有软件的许可条款。 也可运行下一部分的手动安装步骤,这会显示关联的许可证以及要安装的组件。

成功运行脚本后,可以跳转到设置本地群集

sudo curl -s https://raw.githubusercontent.com/Azure/service-fabric-scripts-and-templates/master/scripts/SetupServiceFabric/SetupServiceFabric.sh | sudo bash

手动安装

有关手动安装 Service Fabric 运行时和通用 SDK,请遵照本指南的余下部分操作。

  1. 打开终端。

  2. dotnet 存储库添加到与发行版相对应的源列表。

    wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    
  3. 向 APT Keyring 添加新的 MS Open Tech Gnu 隐私防护(GnuPG 或 GPG)密钥。

    sudo curl -fsSL https://packages.microsoft.com/keys/msopentech.asc | sudo apt-key add -
    
  4. 向 APT Keyring 添加官方的 Docker GPG 密钥。

    sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
  5. 设置 Docker 存储库。

    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
  6. 将 Azul JDK 密钥添加到 APT Keyring 并设置其存储库。

    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9
    sudo apt-add-repository "deb http://repos.azul.com/azure-only/zulu/apt stable main"
    
  7. 根据新添加的存储库刷新包列表。

    sudo apt-get update
    

为本地群集安装并设置 Service Fabric SDK

更新源后,可安装 SDK。 安装 Service Fabric SDK 包,确认安装,并同意许可协议。

Ubuntu

sudo apt-get install servicefabricsdkcommon

提示

以下命令自动接受 Service Fabric 包的许可证:

echo "servicefabric servicefabric/accepted-eula-ga select true" | sudo debconf-set-selections
echo "servicefabricsdkcommon servicefabricsdkcommon/accepted-eula-ga select true" | sudo debconf-set-selections

设置本地群集

  1. 启动本地 Service Fabric 群集进行开发。

启动基于容器的 Service Fabric Onebox 群集。

  1. 安装 Moby 以便能够部署 Docker 容器。

    sudo apt-get install moby-engine moby-cli -y
    
  2. 使用以下设置更新主机上的 Docker 守护程序配置并重启 Docker 守护程序。 详细信息:启用 IPv6 支持

    {
        "ipv6": true,
        "fixed-cidr-v6": "fd00::/64"
    }
    
  3. 启动群集。
    Ubuntu 20.04 LTS:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:u20
    

    Ubuntu 18.04 LTS:

    docker run --name sftestcluster -d -v /var/run/docker.sock:/var/run/docker.sock -p 19080:19080 -p 19000:19000 -p 25100-25200:25100-25200 mcr.microsoft.com/service-fabric/onebox:u18
    

    提示

    默认情况下,这样会拉取具有最新 Service Fabric 版本的映像。 如需特定的修订版本,请访问 Docker 中心页。

  1. 打开 Web 浏览器,转到 Service Fabric Explorer (http://localhost:19080/Explorer)。 群集启动后,可以看到 Service Fabric Explorer 仪表板。 群集完全设置可能需要几分钟时间。 如果浏览器无法打开该 URL 或者 Service Fabric Explorer 未显示系统已准备就绪,请等待几分钟,然后重试。

    Service Fabric Explorer on Linux

    此时,能够部署预生成的 Service Fabric 应用程序包或基于来宾容器或来宾可执行文件的新应用程序包。 若要使用 Java 或 .NET Core SDK 生成新服务,请遵循以下部分中的可选设置步骤操作。

注意

Linux 不支持独立的群集。

提示

如果有可用的 SSD 磁盘,建议配合使用 --clusterdataroot 与 devclustersetup.sh 来传递 SSD 文件夹路径,实现优异的性能。

设置 Service Fabric CLI

Service Fabric CLI 包含用来与 Service Fabric 实体(包括群集和应用程序)交互的命令。 若要安装 CLI,请按照 Service Fabric CLI 中的说明进行操作。

为容器和来宾可执行文件安装 Yeoman 生成器

Service Fabric 提供基架工具,可以借助此类工具,使用 Yeoman 模板生成器从终端创建 Service Fabric 应用程序。 遵循以下步骤安装 Service Fabric Yeoman 模板生成器:

  1. 在计算机上安装 Node.js 和 npm。

    sudo add-apt-repository "deb https://deb.nodesource.com/node_8.x $(lsb_release -s -c) main"
    sudo apt-get update
    sudo apt-get install nodejs
    
  2. 通过 npm 在计算机上安装 Yeoman 模板生成器。

    sudo npm install -g yo
    
  3. 通过 npm 安装 Service Fabric Yeo 容器生成器和来宾可执行文件生成器。

    sudo npm install -g generator-azuresfcontainer  # for Service Fabric container application
    sudo npm install -g generator-azuresfguest      # for Service Fabric guest executable application
    

安装生成器后,可通过运行 yo azuresfguestyo azuresfcontainer 分别创建来宾可执行文件或容器服务。

设置 .NET Core 3.1 开发

安装用于 Ubuntu 的 .NET Core 3.1 SDK,开始创建 C# Service Fabric 应用程序。 .NET Core Service Fabric 应用程序包在 NuGet.org 上托管。

设置 Java 开发

若要使用 Java 生成 Service Fabric 服务,请安装 Gradle 以运行生成任务。 运行以下命令来安装 Gradle。 Service Fabric Java 库是从 Maven 拉取的。

  • Ubuntu

    curl -s https://get.sdkman.io | bash
    sdk install gradle 5.1
    
  • Red Hat Enterprise Linux 7.4(Service Fabric 预览版支持)

    sudo yum install java-1.8.0-openjdk-devel
    curl -s https://get.sdkman.io | bash
    sdk install gradle
    

还需要为 Java 可执行文件安装 Service Fabric Yeo 生成器。 确保已安装 Yeoman,然后运行以下命令:

npm install -g generator-azuresfjava

安装 Eclipse 插件(可选)

可以在面向 Java 开发人员或 Java EE 开发人员的 Eclipse IDE 中安装用于 Service Fabric 的 Eclipse 插件。 可以使用 Eclipse,在 Service Fabric Java 应用程序的基础上创建 Service Fabric 来宾可执行应用程序和容器应用程序。

重要

Service Fabric 插件需要 Eclipse Neon 或更高版本。 请参阅此注意事项后面的说明,了解如何查看 Eclipse 的版本。 如果安装的是较旧版本的 Eclipse,可以从 Eclipse 站点下载较新的版本。 建议不要在现有 Eclipse 安装版本的基础上进行安装(覆盖)。 可以先删除现有版本,然后再运行安装程序,也可以在另一目录中安装较新的版本。

在 Ubuntu 上,建议直接从 Eclipse 站点进行安装,而不是使用包安装程序(aptapt-get)。 这样做可确保获取最新版 Eclipse。 可以安装面向 Java 开发人员或 Java EE 开发人员的 Eclipse IDE。

  1. 在 Eclipse 中,请确保已安装 Eclipse Neon 或更高版本,以及 Buildship 2.2.1 版或更高版本。 可以通过选择“帮助”>“关于 Eclipse”>“安装详细信息”查看已安装组件的版本 。 可以按 Eclipse Buildship:适用于 Gradle 的 Eclipse 插件中的说明更新 Buildship。

  2. 若要安装 Service Fabric 插件,请选择“帮助”>“安装新软件” 。

  3. 在“使用”框中,输入 https://dl.microsoft.com/eclipse

  4. 选择添加

    Available Software page

  5. 选择 ServiceFabric 插件,然后选择“下一步” 。

  6. 执行安装步骤。 然后接受最终用户许可协议。

如果已安装 Service Fabric Eclipse 插件,请确保使用最新版本。 通过选择“帮助”>“关于 Eclipse”>“安装详细信息”查看 。 然后,在已安装插件的列表中搜索 Service Fabric。如果可以使用更新的版本,请选择“更新”。

有关详细信息,请参阅使用适用于 Eclipse 的 Service Fabric 插件开发 Java 应用程序

更新 SDK 和运行时

若要更新到最新版本的 SDK 和运行时,请运行以下命令。

sudo apt-get update
sudo apt-get install servicefabric servicefabricsdkcommon

若要从 Maven 更新 Java SDK 二进制文件,需在 build.gradle 文件中更新相应的二进制文件的版本详细信息,使之指向最新 版本。 若要确切地了解需要在何处更新版本,请参阅 Service Fabric 入门示例中的任何 build.gradle 文件。

注意

更新这些包可能导致本地开发群集停止运行。 按本文中的说明操作,在升级后重启本地群集。

删除 SDK

若要删除 Service Fabric SDK,请运行以下命令。

  • Ubuntu

    sudo apt-get remove servicefabric servicefabicsdkcommon
    npm uninstall -g generator-azuresfcontainer
    npm uninstall -g generator-azuresfguest
    sudo apt-get install -f
    
  • Red Hat Enterprise Linux 7.4(Service Fabric 预览版支持)

    sudo yum remove servicefabric servicefabicsdkcommon
    npm uninstall -g generator-azuresfcontainer
    npm uninstall -g generator-azuresfguest
    

后续步骤