【问题标题】:Deploy azure functions across resource groups跨资源组部署 Azure 功能
【发布时间】:2018-07-28 19:48:53
【问题描述】:

我查看了 Azure 函数文档,但无法退出找到我的问题的答案,因此我想我询问了更广泛的用户社区。​​p>

我们有一个 Azure 订阅,其中包含用于不同环境的多个资源组,因此一组用于开发,一组用于测试,一组用于生产。

我们在 dev 中开发了多个 Azure 功能,并希望使用 CI/CD 进行部署以进行测试和生产。

但是,手动执行此操作 Azure 抱怨函数应用程序的名称已经存在,这很奇怪,因为这意味着函数应用程序名称必须是订阅唯一的或在 Azure 中全局的?这是否意味着您需要将功能应用程序命名为 func-dev、func-test 等?这看起来很丑。

你是怎么解决这个问题的?

【问题讨论】:

    标签: azure azure-functions


    【解决方案1】:

    azure 函数名称必须是全局唯一的(不仅仅是在您的订阅中),因为名称如下:

    functionName.azurewebsites.net

    因此,如果您已经创建了一个名为 functionName 的函数,那么您将无法拥有一个名称为 functionName 的函数,因为该函数的 dns 名称已被占用。

    您可以使用子函数来解决这个问题,因此在函数内部创建一个名为 dev、test 和 prod 的子函数并调用它们

    【讨论】:

    • 是的,但主函数应用程序名称是否也必须是唯一的(函数的容器)?我的意思是,我们正在跨资源组部署函数应用容器,这些容器必须命名为 function-app-dev/test/prod 等。
    • 您可以使用一个功能应用程序(我认为这就是它的名称)可用于托管多个功能。您可以使用路由来确定要调用函数应用上托管的所有函数中的哪个函数:myfunction.azurewebsites.net/devmyfunction.azurewebsites.net/test
    • 这听起来很合理,但函数应用本身需要驻留在资源组中。资源组的想法不是将应用程序从一个环境分离到另一个环境吗?即使我们有 myfunction/dev,这也意味着 myfunction 本身必须位于通用资源组中,而不是特定于环境的资源组中?
    • 是的,azure 中有很多全球独一无二的资源(存储、sql、webapps 等)。你无能为力。也不知道你为什么会接受那个答案,因为我的回答早 40 分钟就来了,而且说的完全一样
    • 虽然您的两个答案都相似,但我接受了它,因为它包含指向文档的链接,我可以在其中更详细地研究。
    【解决方案2】:

    Function App 与任何 App Service 应用程序一样,必须具有全局唯一名称:

    确实,通常会将您的环境包含在应用名称中。

    函数名称在单个函数应用中必须是唯一的,但可以在不同的应用中重复。

    【讨论】:

    • 谢谢,正在寻找类似的文档来明确提及这种独特性。
    • 猜猜我们被困在使用环境后缀命名应用程序了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2023-03-19
    相关资源
    最近更新 更多