Docker развертывание образа в Azure контейнере укажите местоположение kafka Ssl в appSettings - PullRequest
0 голосов
/ 15 апреля 2020

В appsettings.Production. json, у меня есть настройки потребителя, которые определяют файл сертификата

"SslCaLocation": "cacert.pem"

При развертывании изображения с использованием службы контейнеров Azure невозможно найти путь. Я пытался использовать "./cacert.pem", поскольку это linux ОС в azure, он должен идти по текущему пути. Я также попробовал путь COPYDIR для / app в файле docker, но та же проблема при развертывании.

Это развертывание базового приложения do tnet в экземпляре контейнера azure.

У какого-нибудь другого тела была такая же проблема и как она была решена?

Конфиг

{
  "consumer": {
    "bootstrapservers": "code-eventhub.servicebus.windows.net:9093", //specify your kafka broker address
    "groupid": "notification-ms",
    "enableautocommit": true,
    "statisticsintervalms": 5000,
    "sessiontimeoutms": 6000,
    "autooffsetreset": 1,
    "enablepartitioneof": true,
    "SecurityProtocol": 3,
    "SaslMechanism": 1, //Plain
    "SaslUsername": "$ConnectionString",
    "SaslPassword": "Endpoint=sb://sharpcode-eventhub.servicebus.windows.net/;SharedAccessKeyName=notification-ms;SharedAccessKey=key is hidden",
    "SslCaLocation": "cacert.pem"
    //"Debug": "all"
  }

ЖУРНАЛЫ ОШИБОК

[03:10:27 FTL] Application start-up failed
System.InvalidOperationException: ssl.ca.location failed: by_file.c:254: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib: 
   at Confluent.Kafka.Impl.SafeKafkaHandle.Create(RdKafkaType type, IntPtr config, IClient owner)
   at Confluent.Kafka.Consumer`2..ctor(ConsumerBuilder`2 builder)
   at Confluent.Kafka.ConsumerBuilder`2.Build()
   at NewBenefits.NotificationService.ConsumerWrapper..ctor(ConsumerConfig config, String topicName) in /src/NotificationService/Services/ConsumerWrapper.cs:line 16
   at NewBenefits.NotificationService.Services.NotificationService.ExecuteAsync(CancellationToken stoppingToken) in /src/NotificationService/Services/NotificationService.cs:line 33
   at Microsoft.AspNetCore.Hosting.HostedServiceExecutor.ExecuteAsync(Func`2 callback, Boolean throwOnFirstFailure)
   at Microsoft.AspNetCore.Hosting.WebHost.StartAsync(CancellationToken cancellationToken)
   at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage)
   at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token, String startupMessage)
   at Microsoft.AspNetCore.Hosting.WebHostExtensions.RunAsync(IWebHost host, CancellationToken token)
   at Microsoft.AspNetCore.Hosting.WebHostExtensions.Run(IWebHost host)
   at NewBenefits.NotificationService.Program.Main(String[] args) in /src/NotificationService/Program.cs:line 24

...