Руководство по настройке кэширования с помощью службы хранилища Azure и Azure DevOps
Мақала
Ескерім
Эти инструкции нецелесообразны для использования с CMD, выберите PowerShell или Bash из списка выше этого сообщения.
vcpkg поддерживает использование контейнеров службы хранилища Azure для отправки и восстановления ресурсов и двоичных пакетов. Однако настройка предварительно заданных длительных токенов SAS для целей аутентификации требует потенциально ошибочной ручной ротации секретов.
Федерация удостоверений рабочей нагрузки предоставляет механизм, в котором Azure DevOps обеспечивает управление и ротацию секретов, которые могут быть использованы с vcpkg.
Эти инструкции предоставляют разрешение действовать от имени управляемого удостоверения в тех конвейерах, где оно используется. Кроме того, кэши vcpkg предоставляют механизм, в котором скомпрометированная сборка может привести к тому, что другие сборки будут использовать скомпрометированные ресурсы из кэшей.
Не следует разрешать машинам, на которых выполняются ненадежные сторонние запросы на сборку, записывать данные в кэши.
которые используются для официальных сборок.
Необходимые условия
Ескерім
Эти инструкции нецелесообразны с cmD, выберите PowerShell или Bash в верхней части страницы.
Откройте страницу группы ресурсов, в которой вы хотите создать управляемое удостоверение
Нажмите кнопку "+ Создать"
Введите "Назначаемое пользователем управляемое удостоверение" в поле "Поиск Markeplace"
Выберите "Назначаемое пользователем управляемое удостоверение" от "Майкрософт"
Щелкните «Создать» рядом с планом «Управляемый идентификатор, назначаемый пользователем»
Назовите идентификатор, в этом руководстве используется имя vcpkg-docs-identity (при необходимости можно выбрать регион для ресурса).
Нажмите «Рецензирование и создание»
Просмотрите параметры и нажмите кнопку "Создать".
Развертывание ресурса может занять несколько минут.
2. Настройка федерации идентификации рабочей нагрузки с Azure DevOps
Ескерім
Эти инструкции должны совпадать с инструкциями, приведенными в документации по Azure DevOps. Если эти инструкции становятся устаревшими, следуйте инструкциям, предоставленным командой Azure DevOps.
На портале Azure DevOps для проекта, в котором вы хотите запустить конвейеры, выберите "Параметры проекта" в левом нижнем углу. Затем выберите "Подключения службы" слева.
Затем выберите "Новое подключение услуги" справа. Выберите переключатель "Azure Resource Manager" и нажмите "Далее". Выберите "Федерация удостоверений рабочей нагрузки (вручную)" и нажмите клавишу «Далее». Назовите подключение службы и нажмите клавишу NEXT. В этой документации подключение к службе называется vcpkg-docs-identity-connection. На этом этапе Azure DevOps должен отображать идентификатор издателя и субъекта.
На другой вкладке перейдите на портал Azure, перейдя к управляемому удостоверению, созданному на шаге 1. В левой части выберите параметры или федеративные учетные данные и нажмите кнопку "Добавить учетные данные". В раскрывающемся списке выберите "Другие". Скопируйте URL-адрес издателя и идентификатор субъекта из Azure DevOps в форму. Присвойте федеративным учетным данным имя и нажмите кнопку "Добавить". В этой документации используется имя azure-devops-credential.
3. Назначение разрешений управляемого удостоверения контейнеру учетной записи хранения
Пропустите этот шаг, если вы уже предоставили разрешения на управляемое удостоверение контейнеру учетной записи хранения.
На портале Azure перейдите на страницу для использования учетной записи хранения. Слева выберите хранилище данных и контейнеры и выберите контейнер, который вы хотите использовать. Это должно открыть портал Azure для свойств этого конкретного контейнера. В левой части выберите "Управление доступом (IAM)" и нажмите кнопку "Добавить -> добавить назначение ролей". Выберите "Читатель данных BLOB-объектов Azure" для доступа только для чтения или "Участник данных BLOB-объектов Azure" для доступа на чтение и запись, а затем нажмите кнопку "Далее". Затем выберите радиокнопку "Управляемое удостоверение" и щелкните "+ Выбрать участников". Выберите управляемое удостоверение, созданное на шаге 1. Затем дважды выберите "Рецензирование и назначение".
Затем вернитесь на страницу для контейнера учетной записи хранения и снова в левой части выберите "Управление доступом (IAM)" и нажмите кнопку "Добавить -> добавить назначение ролей". Выберите "Делегатор хранилища BLOB-объектов" и нажмите кнопку "Далее". Затем выберите радиокнопку "Управляемое удостоверение" и нажмите "+ Выбрать участников". Выберите управляемое удостоверение, создаваемое на шаге 1. Затем дважды выберите "Рецензирование и назначение".
4. Генерация маркера SAS и его использование с кэшированием
Ескерім
Эти инструкции нецелесообразны с cmD, выберите PowerShell или Bash в верхней части страницы.
В файле yml, где вы хотите вызвать vcpkg в Azure DevOps, используйте задачу AzureCLI@2 для создания токена SAS и вызова vcpkg, например:
YAML
steps:- task:AzureCLI@2 displayName:'Build with vcpkg' inputs: azureSubscription:'vcpkg-docs-identity-connection'# This is the name of the service connection scriptType:'pscore'# you set up in Step 2. scriptLocation:'inlineScript' inlineScript:|
# Determine an end date for the SAS token. This should be based on the maximum length of
# time you expect your pipeline to take.
$current = Get-Date -AsUtc
$end = $current.AddHours(2)
# Replace container-name and storage-account-name with the values from step 3.
# Replace 'rcl' permissions with 'rc' or 'rclw' as appropriate for the permissions you wish to use.
# See https://learn.microsoft.com/rest/api/storageservices/create-service-sas#permissions-for-a-directory-container-or-blob
# for a list of acceptable permissions.
$ctx = New-AzStorageContext -StorageAccountName storage-account-name -UseConnectedAccount
$sas = New-AzStorageContainerSASToken -Context $ctx -Name container-name -Permission rclw -ExpiryTime $end
# Azure PowerShell changed whether it emits a ? at the beginning of the SAS token in different versions:
if ($sas.StartsWith("?")) {
$sas = sas.Substring(1)
}
# Now use the SAS token for asset caching; make sure to replace storage-account-name and container-name again:
$env:X_VCPKG_ASSET_SOURCES = "x-azurl,https://storage-account-name.blob.core.windows.net/container-name,$sas,readwrite"
# ... or for binary caching:
vcpkg install --binarysource "clear;x-azblob,https://storage-account-name.blob.core.windows.net/container-name,$sas,readwrite"
YAML
steps:- task:AzureCLI@2 displayName:'Build with vcpkg' inputs: azureSubscription:'vcpkg-docs-identity-connection'# This is the name of the service connection scriptType:'bash'# you set up in Step 2. scriptLocation:'inlineScript' inlineScript:|
# Determine an end date for the SAS token. This should be based on the maximum length of
# time you expect your pipeline to take.
export end=`date -u -d "2 hours" '+%Y-%m-%dT%H:%MZ'
# Replace container-name and storage-account-name with the values from step 3.
# Replace 'rcl' permissions with 'rc' or 'rclw' as appropriate for the permissions you wish to use.
# See https://learn.microsoft.com/cli/azure/storage/container?view=azure-cli-latest#az-storage-container-generate-sas-optional-parameters
# for a list of acceptable permissions.
# The important arguments that trigger workload identity federation here are '--as-user' and '--auth-mode login'
export sas=`az storage container generate-sas --name container-name --account-name storage-account-name --as-user --auth-mode login --https-only --permissions rclw --expiry $end -o tsv`
# Now use the SAS token for asset caching; make sure to replace storage-account-name and container-name again:
export X_VCPKG_ASSET_SOURCES=x-azurl,https://storage-account-name.blob.core.windows.net/container-name,$sas,readwrite
# ... or for binary caching:
vcpkg install --binarysource "clear;x-azblob,https://storage-account-name.blob.core.windows.net/container-name,$sas,readwrite"
Дальнейшие действия
Ниже приведены другие задачи, которые необходимо выполнить следующим образом:
Бұл мазмұнның көзін GitHub сайтында табуға болады. Онда сонымен бірге мәселелер мен өзгертулерді енгізу сұрауларын жасауға және қарап шығуға болады. Қосымша ақпарат алу үшін қатысушы нұсқаулығын қараңыз.
vcpkg кері байланысы
vcpkg — бастапқы коды ашық жоба. Пікір қалдыру үшін сілтемені таңдаңыз:
Azure HPC — это специально разработанная облачная возможность для рабочей нагрузки HPC и ИИ, использующая современные отраслевые процессоры и обмен данными по сети InfiniBand для обеспечения максимальной производительности, масштабируемости и ценности приложений. Azure HPC позволяет реализовывать инновации, повышать продуктивность и развивать гибкость бизнеса за счет высокодоступного набора технологий HPC и ИИ с возможностью их динамического распределения в соответствии с изменением коммерческих и техническ
Создавайте комплексные решения в Microsoft Azure для создания Функции Azure, реализации веб-приложений и управления ими, разработке решений, использующих службу хранилища Azure, и т. д.