使用 Core Tools 将函数发布到 Azure

已完成

可以使用 Core Tools 将函数发布到 Azure。

现在,你已生成并测试了单利函数,接下来要将其发布到 Azure。 看到它在 Web 上启动并运行是一件很棒的事情。 如果情况确实如此,可以将 URL 发送给同事,以便他们可以从任何位置调用它。

创建函数应用

在使用 Core Tools 发布项目之前,你需要在 Azure 中创建所需的资源,包括用于托管项目的函数应用。 函数还需要一个存储帐户。 无法使用 Core Tools 创建这些 Azure 资源。 你需要通过 Azure 管理工具创建函数应用,这些工具包括 Azure 门户、Azure CLI 和 Azure PowerShell。 在下一个练习中,你将运行 Azure CLI az functionapp create 命令,创建一个可向其发布代码的函数应用。

在本教程的范围内,创建函数应用时要考虑的最重要选项是语言运行时。 函数应用仅支持单一语言运行时。 如果已有要发布的本地函数项目,请确保使用同一语言运行时创建函数应用。 尝试将项目部署到具有不同运行时的应用时,发布将停止并出现错误。

发布到 Azure

若要将函数项目发布到 Azure 中的函数应用,请从函数项目文件夹中运行 func azure functionapp publish <app_name><app_name> 是 Azure 中目标函数项目的名称,而不是项目文件夹的名称,两者可能不同。

Publishing a function app with func azure functionapp publish.

Core Tools 不要求登录到 Azure。 而是通过从 Azure CLI 或 Azure PowerShell 加载会话信息来访问你的订阅和资源。 如果在其中一个工具中没有活动会话,则发布将失败。 无需 Azure CLI 或 Azure PowerShell,就可以从 Core Tools 进行发布。 但是,如果你拥有它们,会更容易。 我们建议你安装其中一个。 请确保在尝试发布之前登录。

在输出指示发布完成后,函数将在 Azure 中正常运行。 最终的发布输出将显示已发布的函数,包括每个 HTTP 触发函数的调用 URL。

使用须知

使用 Core Tools 发布函数时,请注意以下几点:

  • Core Tools 不会在发布过程中验证或测试函数代码。
  • 在发布之前,请确保使用 func start 进行一些测试!
  • 发布时,将停止并删除目标应用中已存在的任何函数,然后再部署项目内容。
  • 不能将来自多个项目的函数按以下顺序发布到一个应用中。
  • 应用中所需的所有函数都必须在一个项目中。
  • 发布到 Azure 不会在本地项目与目标函数应用之间创建任何类型的关系。
  • 你可以将一个函数项目发布到多个函数应用。
  • 还可以在处理代码时,反复将项目重新发布到同一应用。
  • 发布后显示的调用 URL 可以在查询字符串中包含 code 参数。
  • 如屏幕截图所示:?code=4FowT1ywMNoxqa...
  • HTTP 触发器函数的授权级别为“函数”,这要求你在请求标头或查询字符串中传递机密函数密钥。
  • 为方便起见,Core Tools 会在所显示的 URL 的查询字符串中返回该密钥。