Как предоставить общий файловый ресурс для службы без сохранения состояния, работающей в кластере Azure Service Fabric? - PullRequest
0 голосов
/ 12 апреля 2019

Я развернул API без сохранения состояния, в котором есть метод загрузки файла.Потребитель API загружает файл, и файл сохраняется в файловой системе (общий сетевой ресурс), а метаданные хранятся в базе данных.

Однако, когда он развертывается в среде Azure, на самом деле это не так.знать, как настроить службу для доступа к файлам Azure, которые поддерживают SMB.По-видимому, Service Fabric Mesh поддерживает драйвер тома файла, но я не использую сервисную сетку.Просто старый добрый Service Fabric.

Так что вы можете порекомендовать способ не переписывать мой файл ввода / вывода, чтобы он работал в Azure с хранилищем файлов.

Спасибо

1 Ответ

2 голосов
/ 12 апреля 2019

Вы можете скрипт монтировать к общей папке. Используйте субъект-службу для доступа к учетным данным хранилища или настройте их. Запустите сценарий в качестве установки точки входа службы. Убедитесь, что скрипт запускает idempotent .

$resourceGroupName = "<your-resource-group-name>"
$storageAccountName = "<your-storage-account-name>"

# These commands require you to be logged into your Azure account, run Login-AzAccount if you haven't
# already logged in.
$storageAccount = Get-AzStorageAccount -ResourceGroupName $resourceGroupName -Name $storageAccountName
$storageAccountKeys = Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName -Name $storageAccountName

# The cmdkey utility is a command-line (rather than PowerShell) tool. We use Invoke-Expression to allow us to 
# consume the appropriate values from the storage account variables. The value given to the add parameter of the
# cmdkey utility is the host address for the storage account, <storage-account>.file.core.windows.net for Azure 
# Public Regions. $storageAccount.Context.FileEndpoint is used because non-Public Azure regions, such as sovereign 
# clouds or Azure Stack deployments, will have different hosts for Azure file shares (and other storage resources).
Invoke-Expression -Command ("cmdkey /add:$([System.Uri]::new($storageAccount.Context.FileEndPoint).Host) " + `
    "/user:AZURE\$($storageAccount.StorageAccountName) /pass:$($storageAccountKeys[0].Value)")
...