У меня есть Service Fabric, работающий в Azure. Также у меня есть решение Visual Studio с двумя проектами: Service Fabric и Web Service. Я хотел бы развернуть службу в структуре служб в Azure. Когда я щелкаю правой кнопкой мыши свой проект Service Fabric и нажимаю «Опубликовать», служба плавно развертывается в облачной структуре. Я хотел бы сделать то же самое с PowerShell.
Кажется, мне нужно запустить этот скрипт:
# Connect to the cluster using a client certificate.
Connect-ServiceFabricCluster -ConnectionEndpoint $endpoint `
-KeepAliveIntervalInSec 10 `
-X509Credential -ServerCertThumbprint $thumbprint `
-FindType FindByThumbprint -FindValue $thumbprint `
-StoreLocation CurrentUser -StoreName My
# Copy the application package to the cluster image store.
Copy-ServiceFabricApplicationPackage $packagepath -ImageStoreConnectionString fabric:ImageStore -ApplicationPackagePathInImageStore $packagename
# Register the application type.
Register-ServiceFabricApplicationType -ApplicationPathInImageStore $packagename
# Create the service instance.
$appName = <name that I see in fabric explorer under 'typeName' in azure>
New-ServiceFabricService -ApplicationName fabric:/$appName -ServiceName fabric:/$appName/MyApp -ServiceTypeName $serviceTypeName -Stateless -PartitionSchemeSingleton -InstanceCount -1
Перед запуском сценария я щелкаю правой кнопкой мыши свое приложение Fabric и выбираю «Пакет».
Самая последняя команда моего скрипта завершается с ошибкой «приложение не найдено».
Что может отсутствовать?
Когда у вас есть сборка и готовность пакета, вы можете попробовать приведенные ниже команды, чтобы развернуть пакет с помощью сценария PowerShell.
Если вы еще не пробовали приведенный ниже вариант, попробуйте этот и посмотрите, работает ли он.
Есть несколько предварительных условий, необходимых для запуска скрипта:
Ваш кластер запущен и работает.
В кластере развернуты все необходимые сертификаты (например, для SSL конечные точки, если они есть)
У вас есть готовые файлы шаблонов и параметров ARM.
У вас есть необходимые разрешения для развертывания новых ресурсов, а именно роль участника (на уровне подписки или ресурса группа)
У вас создана целевая группа ресурсов
После того, как вы проверите вышеизложенное, выполните следующие команды:
Copy-ServiceFabricApplicationPackage
Регистр-ServiceFabricApplicationType
New-ServiceFabricApplication
Если это не сработает для вас, просмотрите указанные ниже сайты, чтобы узнать, поможет ли это.
Развертывание приложений с помощью PowerShell
Развертывание ресурсов с помощью шаблонов Resource Manager и Azure PowerShell.
Проблема была в том, что я неправильно использовал ApplicationName
и ServiceName
в команде New-ServiceFabricService
.
Чтобы узнать, какие значения правильные, я запустил Get-ServiceFabricApplication
и Get-ServiceFabricService
.
Эти страницы были очень полезны для создания сценариев устранения неполадок:
Вы впервые создали пакет, используя
msbuild HelloWorld.sfproj /t:Package
?