Передача настраиваемого ключа appInsights в приложение javascript (реагирующий / угловой) - PullRequest
0 голосов
/ 11 июля 2019

Я использую Azure AppInsights с некоторым приложением ASP.NET Core 2.1.Я храню ключ инструментария в appsettings.json (который позже переопределяется конфигурацией приложения из службы приложений Azure).Очевидно, что ключ может варьироваться в зависимости от среды (отличается в средах dev / qa / prod).Этот ключ используется AppInsights SDK на внутренней стороне.

Мой вопрос: как передать этот ключ в приложение JavaScript / React (чтобы использовать его с JavaScript App Insisghts sdk)?Я не использую Razor (и не хочу) для генерации главной страницы - это просто статическая html-страница:

<!DOCTYPE html>
<html>
<head>
    <title>To Do List</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

    <script type="text/javascript">
         var appInsights=window.appInsights||function(a){
             function b(a){c[a]=function(){var b=arguments;c.queue.push(function(){c[a].apply(c,b)})}}var c={config:a},d=document,e=window;setTimeout(function(){var b=d.createElement("script");b.src=a.url||"https://az416426.vo.msecnd.net/scripts/a/ai.0.js",d.getElementsByTagName("script")[0].parentNode.appendChild(b)});try{c.cookie=d.cookie}catch(a){}c.queue=[];for(var f=["Event","Exception","Metric","PageView","Trace","Dependency"];f.length;)b("track"+f.pop());if(b("setAuthenticatedUserContext"),b("clearAuthenticatedUserContext"),b("startTrackEvent"),b("stopTrackEvent"),b("startTrackPage"),b("stopTrackPage"),b("flush"),!a.disableExceptionTracking){f="onerror",b("_"+f);var g=e[f];e[f]=function(a,b,d,e,h){var i=g&&g(a,b,d,e,h);return!0!==i&&c["_"+f](a,b,d,e,h),i}}return c
         }({
             instrumentationKey: "how_to_populate_that_key?"
         });
         window.appInsights=appInsights,appInsights.queue&&0===appInsights.queue.length&&appInsights.trackPageView();
    </script>

</head>
  <body>
    <div id="root"></div>
  </body>
</html>

Каково правильное решение для динамической передачи этого ключа из бэкэнда во фронт-конец?Должно ли это быть раскрыто какой-то конечной точкой?Или я должен каким-то образом динамически генерировать какой-то сценарий на бэкэнде (который содержит этот ключ) и ссылаться на него index.html?

Я просто не хочу просто жестко кодировать ключ в кодовой базе JS.

...