Авторизация на уровне функций Авторизовать ключи в Azure. Мы можем управлять этими ключами через CICD - PullRequest
0 голосов
/ 22 февраля 2019

Можем ли мы управлять ключами через CICD?Значит, мне нужно управлять этим через CICD, а не через портал или Rest Srevice, возможно ли это?

1 Ответ

0 голосов
/ 22 февраля 2019

все управляется через api rest (в конечном счете), поэтому этот запрос имеет мало смысла.вы можете управлять ими только с помощью остальных вызовов (насколько я знаю).

function Add-AzureFunctionKey {

    Param(
        [string]$appName,
        [string]$resourceGroup,
        [string]$funcKeyName,
        [string]$funcKeyValue
    )

    $AzureContext = Get-AzureRmContext
    if(!$AzureContext){
        Write-Output "Please login to your Azure Account"
        Login-AzureRmAccount
    }
    $SubscriptionId = (Get-AzureRmSubscription | select Name, State, SubscriptionId, TenantId | Out-GridView -Title "Azure Subscription Selector" -PassThru).SubscriptionId
    Get-AzureRmSubscription -SubscriptionId $SubscriptionId | Select-AzureRmSubscription

    $PublishingProfile = (Get-AzureRmWebAppPublishingProfile -ResourceGroupName $resourceGroup -Name $appName)

    $user = (Select-Xml -Xml $PublishingProfile -XPath "//publishData/publishProfile[contains(@profileName,'Web Deploy')]/@userName").Node.Value
    $pass = (Select-Xml -Xml $PublishingProfile -XPath "//publishData/publishProfile[contains(@profileName,'Web Deploy')]/@userPWD").Node.Value

    $pair = "$($user):$($pass)"
    $kuduCredentials = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))

    $authToken = Invoke-RestMethod -Uri "https://$appName.scm.azurewebsites.net/api/functions/admin/token" -Headers @{Authorization = ("Basic {0}" -f $kuduCredentials)} -Method GET

    $Functions = Invoke-RestMethod -Method GET -Headers @{Authorization = ("Bearer {0}" -f $authToken)} -Uri "https://$appName.azurewebsites.net/admin/functions"
    $Functions = $Functions.Name
    ForEach ($functionName in $Functions) {
        $data = @{ 
            "name"  = "$funcKeyName"
            "value" = "$funcKeyValue"
        }
        $json = $data | ConvertTo-Json;

        $keys = Invoke-RestMethod -Method PUT -Headers @{Authorization = ("Bearer {0}" -f $authToken)} -ContentType "application/json" -Uri "https://$appName.azurewebsites.net/admin/functions/$functionName/keys/$funcKeyName" -body $json
        Write-Output "Function $FunctionName Key updated $keys"
    }
}

вот пример, найденный в Интернете, я не проверял его.В Интернете есть несколько примеров, более или менее похожих на приведенный выше.

Источник: https://www.powershellbros.com/add-azure-function-key/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...