选择本文顶部容器化函数应用的托管环境。
若要直接访问,以下文章介绍如何在 Linux 容器中创建第一个函数,以及如何将映像从容器注册表部署到受支持的 Azure 托管服务:
重要
本文目前介绍如何使用连接字符串连接到默认存储帐户。 为了获得最佳安全性,请改为使用 Microsoft Entra 身份验证创建与 Azure 存储的基于托管标识的连接。 有关详细信息,请参阅 连接。
创建容器化函数应用
借助 Functions,可以轻松地将创建和维护的函数应用作为 Linux 容器进行部署和运行。
重要
创建自己的容器时,需要将容器的基础映像更新为受支持的最新基础映像。 Azure Functions 支持的基映像特定于语言,可在 Azure Functions 基础映像存储库中找到。
Functions 团队致力于发布这些基础映像的每月更新。 定期更新包括 Functions 运行时和语言的最新次要版本更新和安全修补程序。 对于容器,应定期更新 Dockerfile 中的基础映像,重新生成并重新部署容器的更新版本。
有关如何从命令行创建本地容器化函数应用并将映像发布到容器注册表的完整示例,请参阅 在本地 Linux 容器中创建函数应用。
生成 Dockerfile
Functions 工具提供了一个 Docker 选项,该选项可使用函数代码项目生成 Dockerfile。 可以将此文件与 Docker 配合使用,在派生自正确基础映像(包括语言和版本)的容器中创建函数。
创建 Dockerfile 的方式取决于创建项目的方式。
如果使用 Azure Functions Core Tools 创建 Functions 项目,请在运行
--docker
命令时包括func init
选项,如以下示例所示:func init --docker
你还可以将 Dockerfile 添加到现有项目,只需在现有项目文件夹中运行
--docker-only
命令时使用func init
选项即可,如以下示例所示:func init --docker-only
有关完整示例,请参阅 在本地 Linux 容器中创建函数应用。
在容器中创建函数应用
有了 Functions 在代码项目中生成的 Dockerfile,你可以使用 Docker 在本地计算机上创建容器化函数应用。 以下 docker build
命令将从本地目录中的项目创建容器化函数的映像:
docker build --tag <DOCKER_ID>/<IMAGE_NAME>:v1.0.0 .
有关如何创建容器的示例,请参阅生成容器映像并在本地验证。
更新注册表中的映像
对函数代码项目进行更改或需要更新到最新的基础映像时,请在本地重新生成容器。 将更新后的映像重新发布到所选容器注册表。 以下命令将使用更新的版本号从根文件夹重新生成映像,并将其推送到注册表:
az acr build --registry <REGISTRY_NAME> --image <LOGIN_SERVER>/azurefunctionsimage:v1.0.1 .
请将 <REGISTRY_NAME>
替换为您的容器注册表实例,并将 <LOGIN_SERVER>
替换为登录服务器名称。
更新现有部署以使用新映像。 可以通过 Azure CLI 或 Azure 门户将函数应用更新为使用新映像:
- Azure CLI
- Azure 门户
az functionapp config container set --image <IMAGE_NAME> --registry-password <SECURE_PASSWORD>--registry-username <USER_NAME> --name <APP_NAME> --resource-group <RESOURCE_GROUP>
在此示例中,<IMAGE_NAME>
是新映像的完整名称(包括版本)。 专用注册表要求提供用户名和密码。 请妥善存储这些凭据。
另外,应考虑启用持续部署。
在 Azure Functions 中使用映像
从注册表部署函数应用容器时,Functions 会维护有关源映像的信息。
- Azure CLI
- Azure 门户
使用以下命令获取有关映像的数据,或更改使用的部署映像:
az functionapp config container show
:返回有关用于部署的映像的信息。az functionapp config container set
:更改注册表设置或更新用于部署的映像,如以上示例所示。