将Python可执行文件部署到Azure Service Fabric
我正在寻找有用的解决方案,以将
Python可执行文件部署到Azure Service Fabric
有节点js here的文档,但我找不到任何与python相关的内容 解决方法
小贴士:节省一些时间,并尝试先在本地运行.我的经验是,很多事情都可能出错,其中最难确定的是节点上的执行权.
建立 将Python部署到Service Fabric所需的步骤: ?>确保在SF节点上安装了Python(包含您需要的软件包). 有两种方法可以做到这一点: > >创建一个您在Guest Executable SetupEntryPoint中调用的python安装脚本,更多关于这一点. 在任何情况下,您都需要将Python放到节点上并确保将Python和Python / Scripts添加到节点路径中. > 您现在有一个服务结构应用程序,它将您的代码复制到您的服务结构群集但不执行任何操作. (实际上它可能会因为没有定义端点而对你大喊大叫,但接下来就是这样) 现在我们得到了一些黑客攻击.
将其用作EntryPoint. 现在,您在ServiceManifest.xml中的EntryPoint如下所示: ... <EntryPoint> <ExeHost> <Program>run.cmd</Program> <Arguments></Arguments> <WorkingFolder>CodePackage</WorkingFolder> <ConsoleRedirection FileRetentionCount="5" FileMaxSizeInKb="2048"/> //use this to get logging (very helpful ;) </ExeHost> </EntryPoint> </CodePackage> 如果你想让SetupEntryPoint为你安装python,你可以这样做: <SetupEntryPoint> <ExeHost> <Program>Setupsetup.bat</Program> <WorkingFolder>CodePackage</WorkingFolder> </ExeHost> </SetupEntryPoint> 我的setup.bat看起来像这样(路径有一些问题):
我的解决方案中的代码被复制到这个结构中: MyGuestExecutablePkg | - Code - run.cmd - main.py - Setup - setup.bat - .... - Config - Settings.xml - ServiceManifest.xml ApplicationManifest.xml 我希望这可以帮助某些人,但是我会阅读Guest Executable文档以了解我错过的任何内容. 1 政策 有些东西需要在服务结构节点上获得精简权限,这就是为了让它运行.cmd,.bat,Python.exe等等你的服务. .... <ServiceManifestImport> <ServiceManifestRef ServiceManifestName="MyGuestExecutablePkg" ServiceManifestVersion="1.0.0" /> <ConfigOverrides /> <Policies> <RunAsPolicy CodePackageRef="Code" UserRef="SetupAdminUser" EntryPointType="Setup" /> <RunAsPolicy CodePackageRef="Code" UserRef="SetupAdminUser" EntryPointType="Main" /> </Policies> </ServiceManifestImport> .... 第一个策略是提升SetupEntryPoint,而第二个策略是复制EntryPoint,也就是说.你的服务. </DefaultServices> <Principals> <Users> <User Name="SetupAdminUser"> <MemberOf> <SystemGroup Name="Administrators" /> </MemberOf> </User> </Users> </Principals> </ApplicationManifest> 最后的想法 我作为Flask Api运行我的服务,因为这非常容易.所以“所有”Service Fabric会启动Flask API,然后确保它在崩溃时重新启动. netstat -na | find "5000" 在节点上验证api确实启动并运行. 在这之后,您当然需要在Azure门户中为服务结构集群打开负载balanser中的端口. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |