我已經創建了一個服務Fabric應用程序,該應用程序當前由兩個Reliable Services和一個Reliable Actor組成。對於開發,我在Azure中創建了一個SQL Server和數據庫,並將連接字符串硬編碼到我的本地SF羣集上運行的應用程序中。這工作得很好,我能在本地運行我的應用程序,同時操縱雲中的數據庫。無法通過Powershell或Visual Studio連接到安全的Azure服務Fabric羣集
我現在想要將我的服務發佈到雲端,並將其全部遠程運行(以便我可以設置和測試Web API的公開情況),這就是問題的出發點。
繼Azure的文檔:
- Create a Service Fabric cluster in Azure using Azure Resource Manager
- Connect to a secure cluster
- Configure secure connections to a Service Fabric cluster from Visual Studio
- Service Fabric cluster security scenarios
- Publish an application to a remote cluster by using Visual Studio
- Add or remove certificates for a Service Fabric cluster in Azure
我採取了以下措施:
使用PowerShell的(與
ServiceFabricRPHelpers
的cmdlet)來創建一個KeyVault資源組,並在一個KeyVault
。使用
New-SelfSignedCertificate
與-DnsName設置爲api.mydomain.co.uk,我已經購買並創建了API導致mycluster.northeurope.cloudapp.azure.com:19000 CNAME記錄(儘管當然它在該過程的這個階段不存在),接着Export-PfxCertificate
創建.pfx
文件。然後將.pfx
導入到cert:\CurrentUser\TrustedPeople
和cert:\CurrentUser\My
。調用
Invoke-AddCertToKeyVault
將新生成的證書添加到我的KeyVault
。使用
SetupApplications.ps1
腳本來配置AAD。將所有生成的字符串等放入
azuredeploy.json
和azuredeploy.parameters.json
,解決了錯誤(其中一些似乎與文檔相矛盾),併成功部署了羣集。它現在在Azure門戶上可見。從經典門戶分配用戶角色(管理員自己)。
使用
Invoke-AddCertToKeyVault
(此時創建並)向羣集添加第二個「管理客戶端」證書(與第一個是羣集證書相對)。
因此,隨着那所做的一切,我相信我應該做的一切,我需要爲了能夠連接到羣集通過VS2015發佈,並從api.mydomain.co.uk:19080
訪問管理界面。唉,那不會發生...
連接到數據庫的資源組我的集羣仍然VS通過SQL服務器資源管理器使用SQL身份驗證,但是作品中,任何嘗試使用AAD或基於X509的身份驗證導致等待,而它本身的服務器進行通信它試圖連接,然後失敗。舉幾個例子:
試圖連接到管理控制檯說,它的封鎖,這意味着對我來說是存在的,但告訴我如何訪問它之前所有的文件結束。
嘗試使用Connect-ServiceFabricCluster
連接也失敗,並且搜索錯誤消息沒有給我任何指示。
共度兩天,吸收了這一切,並試圖得到它的工作後,我都出什麼嘗試和改變想法。任何人都可以在我所做的事情中發現問題,或者建議我可以嘗試的任何事情? 如果您需要更多的細節,請點擊這裏!
感謝您的提示!我最終對此感到沮喪,因此我決定採用整個SF方法,只寫了一個Python後端,並將其託管在我自己的服務器上。我沒有得到Azure的所有幻想,但是當它設置的這麼混亂時,對於我現在正在處理的內容來說,這並不值得。我會接受你的回答,因爲我認爲我沒有嘗試過你所建議的任何事情,也許將來我會根據你的指導做出另外的決定,看看它是否成功。 –
這對我幫助很大!我所做的兩件事情有所不同: 1.在osProfile 的vaultCertificates部分不包括集羣證書2.我在clientCertificateCommonNames中指定了集羣證書,並且clientCertificateThumbprints爲空。 我修正了這兩個問題,所以我不確定哪一個是罪魁禍首。奇怪的部分是在修復上述問題之前,我能夠使用集羣證書連接到Service Fabric Explorer,但我無法連接到部署 – Alex