【问题标题】:Deployment to Azure with Kudu and cUrl使用 Kudu 和 cUrl 部署到 Azure
【发布时间】:2017-02-07 17:48:30
【问题描述】:

我正在尝试从脚本部署 Azure 应用。 Azure 已设置用于外部 git 存储库部署。 我已将部署密钥(Azure 的 SSH 公钥)设置到 Gitlab 中

以下作品

curl -X POST 
     -H "Content-type: application/json"
     -d "{'format':'basic', 'url':'https://GITLABUSER:GITLABUSERPASSWORD@gitlab.com/MYTEAM/MYGIT.git'}"
     -u "AZUREUSERNAME:AZUREPASSWORD"  
     https://MYSITE.scm.azurewebsites.net/deploy

有没有办法不在请求中指定 Gitlab 用户和密码,因为 Azure 已经知道要从中提取的 Git 的地址?

【问题讨论】:

    标签: azure kudu


    【解决方案1】:

    根据code,它似乎在没有用户名/密码的情况下无法工作,它在处理 GitLab 时会明确检查它们的存在。

    更好的方法是使用 ARM 同步 API,而不是直接与(较低级别的)Kudu API 对话。例如有一个示例 here 关于如何使用 PowerShell 调用它:

    Invoke-AzureRmResourceAction -ResourceGroupName $ResourceGroupName -ResourceType Microsoft.Web/sites -Name $SiteName -Action sync -ApiVersion $WebAppApiVersion -Force
    

    您可以通过任何支持进行 ARM API 调用的机制来调用相同的 API。

    上一个(不正确的)答案

    尝试在有效负载中传递 ssh url 而不是 https。我相信它会做正确的事。

    【讨论】:

    • 尝试将 https url 更改为 'url':'git@gitlab.com/MYTEAM/MYGIT.git' 会导致错误 "Repository url 'git@gitlab.com/MYTEAM /MYGIT.git' 无效。”
    • 你说得对,这行不通。我修改了答案以描述另一种技术。
    • 可以试试,不过需要在我的 Docker 构建映像上安装 powershell。
    • PowerShell 只是一个例子。您可以通过任何方式调用相同的 ARM API(xplat CLI、raw rest 等)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 2021-01-09
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多