Azure 容器应用程序预览,修订预配状态失败,但没有可用的错误消息。 如何诊断配置问题?
我目前正在研究一些 Azure 容器应用程序快速入门。我刚刚尝试创建一个使用存储帐户状态存储启用 Dapr 的产品。它的提供状态为失败,但似乎没有其他信息。我不知道如何从容器访问任何日志,并且 Log Analytics 工作区中没有任何内容。到目前为止,我测试过的其他示例都有效,因此我认为它与 Dapr 配置有关。
有没有办法连接到容器并查看发生了什么?或者我可以在任何地方找到有关抛出的错误的更多详细信息?
Azure Container App我找不到在门户中添加环境值的方法。
我怎样才能添加到里面Azure Portal?
我部署了一个带有单个修订版本的 Azure ContainerApp,我想停止它 - 但不删除它并且必须重新部署它。我在注册表中看到该映像,并且可以通过门户选择将其部署到 AppService 或 ContainerInstance,但不能部署到 ContainerApp。
我还查看了 az CLI,特别是az containerapp,但没有找到停止正在运行的实例的方法。我可以将比例设置为 0-1,但它仍然运行。
我错过了什么吗?停止实例似乎是一件很正常的事情......
编辑- 将所有修订设置为非活动似乎不允许。请参阅下面的图片。
使用 Azure 容器应用程序并在部署时命令无法配置容器并告诉我检查日志分析。当我检查时,我只看到容器中的一条日志,上面写着:
standard_init_linux.go:228: exec 用户进程导致: exec 格式错误
这里有什么问题?
我有一个基于托管BackgroundService模型的Azure容器应用程序。它本质上只是一个长时间运行的控制台应用程序,它覆盖该BackgroundService.ExecuteAsync方法并等待停止信号(通过传递的取消令牌)。当我在 Docker 中本地运行时,它是完美的 - 一切都按预期运行。当我部署为 Azure 容器应用程序时,它会部署并运行 - 尽管我必须手动将最小规模设置为 1 才能让它运行 - 但它每 30 秒左右重新启动一次,这显然不理想。我的猜测是,Azure 容器应用程序 docker 主机正在以某种方式检查我的实例的运行状况,但不满意,因此尝试重新启动它?只是一个猜测。我缺少什么?
using FR911.DataAccess.Repository;
using FR911.Infrastructure.Commands;
using FR911.Utils;
using FR911.Utils.Extensions;
using SimpleInjector;
IHost host = Host.CreateDefaultBuilder(args)
.ConfigureServices(services =>
{
services.AddFR911Log4NetConfig();
services.AddTransient<ICommandProcessor, CommandProcessor>();
Container container = new Container();
container.Register(typeof(ICommandHandler<,>), new List<Type>()
{
//typeof(CacheSyncCommandHandler),
});
#if DEBUG
container.Verify();
#endif
services.AddSingleton<Container>(container);
services.AddHostedService<Worker>();
})
.Build();
await host.RunAsync();
Run Code Online (Sandbox Code Playgroud)
public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;
private ICommandProcessor _commandProcessor;
public Worker(ILogger<Worker> logger, ICommandProcessor …Run Code Online (Sandbox Code Playgroud) 根据ACA 文档,我们必须指定容器的目标端口
az containerapp create \
--name my-container-app \
--resource-group $RESOURCE_GROUP \
--environment $CONTAINERAPPS_ENVIRONMENT \
--image mcr.microsoft.com/azuredocs/containerapps-helloworld:latest \
--target-port 80 \
--ingress 'external' \
--query configuration.ingress.fqdn
Run Code Online (Sandbox Code Playgroud)
现在我的问题是如何通过 docker-compose 部署而不仅仅是单个图像,因为有一个目标端口?
azure docker-compose azure-container-registry azure-container-apps
我刚刚创建了一个 Azure 容器应用程序,并尝试将其链接到 docker.io 上的私有存储库。如果我让它提取公共图像,它会起作用,但如果它是私有图像,则不起作用,即使我指定了所有信息。我还使用了 github 的自动“持续部署”(azure 门户基本上做了所有事情,人们认为这会起作用),我输入了相同的信息( docker.io、用户名和密码以及图像标签,当我在控制台中测试),生成的 github 操作能够构建并推送到 docker 注册表,证明用户和密码是好的,但它也不想更新容器应用程序。
这是我尝试通过 github 操作执行此操作的最新错误:以下字段无效或丢失。无效值:“docker.io/pasc32/companio:latest”:GET https:: UNAUTHORIZED:需要身份验证;[地图[操作:拉类:名称:pasc32/companio 类型:存储库]]:template.containers.test.image。
当我尝试直接从门户执行此操作时,它会在顶部添加一条通知,该通知将永远转动,如果我刷新页面,则不会发生任何变化,并且容器会恢复到之前的状态,在中没有通知的痕迹活动日志。
有谁知道这是什么问题吗?
感谢!
我有一个二头肌模板,可以创建多个容器应用程序。他们应在我的私有 DNS 区域中有一个自定义子域。但是,我遇到的问题是,这会导致循环依赖:要将 CName 和验证 TXT 记录添加到 DNS 区域,我需要容器应用程序的 FQDN 和验证。另一方面,容器应用程序的部署会验证这些记录是否存在,如果不存在则失败。
我当前使用的解决方法涉及一个布尔模板参数,该参数在第一次运行时必须为 false:
param register_custom_domains bool = false
resource container_app 'Microsoft.App/containerapps@2022-03-01' = {
// ...
properties: {
configuration: {
ingress: {
customDomains: register_custom_domains ? [
{
name: 'name'
certificateId: certifcate.id
bindingType: 'SniEnabled'
}
] : null
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
但这自然需要部署两次。有没有更好的办法?
我是 Azure 容器应用程序的新手。我需要将一组应用程序部署到 Azure 容器应用程序。当我将 Postgres DB 部署为容器时,设置出现问题,当容器关闭时,容器中的数据将被破坏。
我想保存数据,根据之前提出的问题,它无法保存 Postgres 容器应用程序内的数据。
我想运行容器化数据库并保留卷。我如何使用可用的 Azure 服务来做到这一点?
我成功地能够在容器中运行应用程序,但是当容器重新启动时,容器内的数据将被破坏。
postgresql containers azure persistent-volumes azure-container-apps