你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure 容器应用常见问题解答 (FAQ)

本文列出了有关 Azure 容器应用的常见问题和相关解答。

区域

在哪里可以找到有关 Azure 容器应用受支持区域的最新信息?

可以运行以下 Azure CLI 命令来生成列表:

```azurecli
az provider show \
--namespace Microsoft.App \
--query "resourceTypes[?resourceType=='managedEnvironments'].locations"
```

API

Azure 容器应用是否提供对基础 Kubernetes API 的直接访问?

否,无权访问 Kubernetes API。

是否可以从 API 管理的上下文中导入 Azure 容器应用 API?

是的。

计费

Azure 容器应用如何计费?

有关详细信息,请参阅计费页。

配置

是否可以设置 GitHub Actions 来自动生成代码并将其部署到 Azure 容器应用?

是的。 使用 Azure CLI,运行 az containerapp github-action -h 来查看选项。 使用 Azure 门户,转到容器应用下的“持续部署”窗口。

为何我的应用收到的 URL 与请求中指定的 URL 不同?

Azure 容器应用会将 URL 解码,以保护应用免遭 URL 混淆攻击。 包含编码部分的请求 URL(例如 http://mysite.com/archive/http%3A%2F%2Fmysite.com%2Farchive%2F123)将作为 http://mysite.com/archive/http%3A/mysite.com/archive/123 发送到应用。

纯消耗环境是否支持自定义的用户定义路由?

对于纯消耗环境,不支持快速路由,但支持按如下方式配置的有限 UDR。 UDR 配置必须具有为 Azure.<REGION_NAME> 服务标记配置的路由,且“下一个跃点”为“Internet”。 此外,必须配置 NSG 文档中的规则,以使纯消耗环境正常运行。 这些限制不适用于工作负荷配置文件。对于全功能 UDR 和 ExpressRoute 支持,请使用工作负荷配置文件环境。

数据管理

Azure 容器应用将客户数据存储在何处?

Azure 容器应用不会将客户数据移动或存储到部署区域之外。

配额

如何请求增加配额?

在 Azure 门户中请求增加配额,并选择 Azure 容器应用作为提供程序。

在请求增加配额时,请记住以下事项:

  • 缩放应用和环境:可以增加许多不同的配额。 使用这些说明来帮助确定你的需求:

    • 增加每个环境的应用和核心:允许在环境和/或更密集的应用中运行更多应用。 如果工作负载可以部署在同一网络和安全边界内,则建议使用。
    • 增加环境:如果工作负载需要网络或安全边界,则建议使用。 注意:如果请求涉及增加环境级别配额,则可能需要详细的业务上下文。 当你请求对区域环境配额进行更改时,应该请求对全局环境配额进行相应的更改。
  • 区域:对增加请求的审批因 Azure 区域中可用的计算容量而异。

  • 特定计算要求:平台支持每个容器应用 4 GB。 内存限制替代值是按具体情况评估的。

  • 缩放的业务原因:如果平台限制阻碍了工作负载需求,则可能有资格请求增加配额。 缩放限制替代值是按具体情况评估的。

由 Dapr 提供支持的微服务 API

Azure 容器应用中提供了哪些 Dapr 功能和 API?

每个 Dapr 功能都会进行全面评估,以确保它对在 Azure 容器应用环境中运行微服务的客户产生积极影响,同时提供最佳体验。

Alpha Dapr API 和第 2 层组件在 Azure 容器应用中是否受支持或可用?

Dapr 的 alpha API 的可用性没有保证且不受 Microsoft 支持。

尽管完全支持第 1 层组件,但也会尽最大努力支持第 2 层组件。 了解详细信息

Azure 容器应用中的 Dapr 版本发布节奏是怎样的?

Dapr 的典型发布时间线是在 Dapr OSS 发布后最多六周。 只有在经过严格的测试后,Azure 容器应用中才会提供最新的 Dapr 版本。 向所有区域推出可能需要两周或更长的时间。

如何为 Azure 容器应用请求 Dapr 功能增强?

可以通过 Azure 容器应用 GitHub 存储库提交功能请求。 请确保在功能请求标题中包含“Dapr”。

无 Docker 部署

什么是无 Docker 部署?

无 Docker 部署让你无需在代码中定义 Dockerfile 即可部署应用程序。 相反,容器应用云生成功能使用 Buildpack 将你本地计算机上的源代码转换为容器映像。 此选项使用 Azure 容器应用默认注册表。

在部署无 Docker 应用程序期间,会显示有关“ImagePullBackOff on legion”、“Kubernetes 错误”或“网关错误”的消息,并且应用程序无法成功部署。

你遇到了一项无 Docker 部署的已知问题。 重试可能会解决此问题。 如果遇到此问题,请开启 GitHub 问题,以便我们的团队可以进行调查。

部署 .NET 应用程序

如果 .NET 应用程序无法缩放,该怎么办?

需要在 Azure 容器应用上为所有 .NET 应用启用数据保护。 有关详细信息,请参阅在 Azure 容器应用上部署和缩放 ASP.NET Core 应用

部署 Java 应用程序

支持哪些 JDK 版本以及如何配置 JDK 版本?

容器应用支持四个 LTS JDK 版本:JDK 8、JDK 11、JDK 17 和 JDK 21。 对于源代码生成,默认版本为 JDK 17。 对于 JAR 文件生成,JDK 版本是从 JAR 中的文件位置 META-INF\MANIFEST.MF 读取的,但如果指定的版本不可用,则使用默认的 JDK 版本 17。

可以配置 JDK 版本以通过生成环境变量替代默认版本。

支持哪些 Java 生成工具?

Maven

如何根据源代码自定义 Java 映像生成?

可以通过生成环境变量自定义 Java 映像生成。

如何确保无 Docker 生成和映像在我的应用所在的区域中可用?

containerapp up 与无 Docker 代码库结合使用时,请使用 --location 参数,以便应用程序在美国东部以外的位置运行。