【问题标题】:ADS 2019: How to create a service connection to an Azure Storage Emulator?ADS 2019:如何创建与 Azure 存储模拟器的服务连接?
【发布时间】:2020-10-14 05:33:28
【问题描述】:

作为我的测试工具的一部分,我想部署到 Azure Storage Emulator 容器。

对于生产版本,我将使用带有此命令的 Azure CLI 发布任务:

call az storage blob sync -s %ReleaseDirectory% -c %ReleaseName% --account-name %AccountName%

这很好用。

当我尝试为我的测试环境创建到模拟器的服务连接时,问题就开始了。为了创建这样的连接,我们得到这个对话框:

看到问题了吗?订阅 ID...租户 ID...SPN 信息...对于模拟器实例,这些都不存在。显然,我们只能创建与成熟的 Azure 存储帐户的连接。似乎没有连接到模拟器的规定。

还有其他方法吗?如何创建与 Azure 存储模拟器的服务连接,以便在与 Azure 相关的管道任务中使用它?

【问题讨论】:

    标签: azure azure-storage azure-devops-server-2019


    【解决方案1】:

    在 azure devops 中没有 Azure Storage Emulator 的服务连接。上图是云上Azure资源的服务连接。

    如果 Azure Storage Emulator 安装在本地计算机上,云代理将无法访问托管在本地计算机上的 Azure 存储模拟器。您必须创建一个自托管代理(在同一台本地机器上)。并在自托管代理上运行您的管道。以便您的管道可以访问 Azure 存储模拟器。

    按照步骤here 创建自托管代理。

    如果 Azure 存储模拟器和您的自托管代理安装在不同的计算机上。您可以添加 SSH service connection 以连接到托管 Azure 存储模拟器的计算机。然后您可以使用SSH taskPowerShell on Target Machines task 在远程机器上运行脚本。

    如果 Azure 存储模拟器容器托管在 Azure 容器注册表上。您可以添加 Docker Registry 服务连接。这样您就可以使用 Docker 任务在代理计算机上运行 Azure Storage Emulator 容器。见下文:

    【讨论】:

    • 澄清一下,我没有使用 Azure DevOps Services。如标签所示,我正在使用 Azure DevOps Server 2019。我的构建代理在同一台机器上运行。这会改变你的答案吗?我不清楚你的第二段——你能否解释一下如何从我在同一台服务器上运行的 ADS 2019 实例访问模拟器。谢谢。
    • 您可以查看this link 以连接到 Azure 存储模拟器。由于您的构建代理托管在同一台机器上。就像您在本地连接到 Azure 存储模拟器一样。
    • 感谢您的链接,但我并没有尝试从我的应用程序中进行连接。我正在尝试从 ADS 发布任务进行连接,因此我可以在发布之前上传我的应用程序进行测试。同样,这是一个本地 ADS 2019 实例,而不是基于云的 Azure DevOps 服务。
    • 可以使用az cli命令,如azcopy copy"C:\LocalDir" "http://<local-machine-address>:<port>/<account-name>/<resource-path>" --from-to LocalBlob
    • 好的。 It's working,虽然我不得不切换到 Azurite 并回退到 PowerShell 才能到达这里。在仿真下工作时,AzureCLI 和 AzCopy 都非常令人失望。但正是你的建议让我走上了这条最终奏效的道路,所以谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 2014-02-17
    • 2019-02-24
    相关资源
    最近更新 更多