Configurare un bot Node.js per l'estensione

A partire dal 1° settembre 2023, è consigliabile usare il metodo tag del servizio di Azure per l'isolamento della rete. L'utilizzo di DL-A edizione Standard deve essere limitato a scenari altamente specifici. Prima di implementare questa soluzione in un ambiente di produzione, è consigliabile consultare il team di supporto per indicazioni.

SI APPLICA A: SDK v4

Questo articolo descrive come aggiornare un bot Node.js per lavorare con named pipe e come abilitare l'estensione servizio app Direct Line nella risorsa del servizio app Azure in cui è ospitato il bot.

Prerequisiti

  • Un account di Azure. Se non se ne ha già uno, creare un account gratuito prima di iniziare.
  • Un bot Node.js distribuito in Azure.
  • Bot Framework SDK per Node.js, 4.7 o versione successiva.

Abilitare l'estensione servizio app Direct Line

Questa sezione descrive come abilitare l'estensione servizio app Direct Line usando la chiave di estensione servizio app dalla configurazione del canale Direct Line del bot.

Aggiornare il codice del bot

Per consentire all'app di usare l'estensione direct line servizio app named pipe:

  1. Modificare il file del index.js bot.

    1. Individuare la riga in cui si crea l'adattatore del bot.

    2. Dopo aver creato l'adapter, aggiungere l'istruzione seguente, che eseguirà il pull del nome servizio app dall'ambiente e indicherà all'adattatore di connettersi alla named pipe appropriata.

      • Se il bot usa ( CloudAdapter scelta consigliata):

        adapter.connectNamedPipe(
            process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline',
            async (context) => {
                await myBot.run(context);
            },
            process.env.MicrosoftAppId,
            AuthenticationConstants.ToChannelFromBotOAuthScope);
        
      • Se il bot usa il deprecato BotFrameworkAdapter:

        adapter.useNamedPipe(async (context) => {
            await myBot.run(context);
            },
            process.env.APPSETTING_WEBSITE_SITE_NAME + '.directline'
        );
        
    3. Salva le modifiche.

  2. Modificare il file del web.config bot per aggiungere il gestore e la AspNetCore regola necessari per l'estensione servizio app Direct Line alle richieste di servizio.

    1. Modificare il file del web.config bot.

    2. Modificare l'attributo webSocket del enabled tag in true.

      <webSocket enabled="true" />
      
    3. <handlers> Nella sezione aggiungere una registrazione per il gestore seguente.

      <add name="aspNetCore" path="*/.bot/*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      
    4. <rewrite> Nella sezione aggiungere la regola seguente all'elenco delle regole.

      <!-- Do not interfere with Direct Line App Service extension requests. (This rule should be as high in the rules section as possible to avoid conflicts.) -->
      <rule name ="DLASE" stopProcessing="true">
        <conditions>
          <add input="{REQUEST_URI}" pattern="^/.bot"/>
        </conditions>
      </rule>
      
    5. Salva le modifiche.

  3. Ridistribuire il bot aggiornato in Azure.

Abilitare l'estensione servizio app direct line per bot

  1. Nella portale di Azure passare alla risorsa di Azure Bot.

    1. In Impostazioni selezionare Canali per configurare i canali da cui il bot accetta i messaggi.
    2. Se non è già abilitata, selezionare il canale Direct Line dall'elenco Canali disponibili per abilitare il canale.
    3. Dopo aver abilitato Direct Line, selezionarlo di nuovo nella pagina Canali .
    4. Selezionare la scheda estensione servizio app.
    5. In servizio app Chiavi di estensione selezionare l'icona a forma di occhio accanto alla chiave corrispondente.
  2. Passare alla home page e selezionare servizio app nella parte superiore della pagina. In alternativa, visualizzare il menu del portale e quindi selezionare la voce di menu servizio app s. Azure visualizzerà la pagina servizio app s.

  3. Nella casella di ricerca immettere il nome della risorsa azure Bot . La risorsa verrà elencata.

    Si noti che se si passa il puntatore del mouse sull'icona o sulla voce di menu, si ottiene un elenco delle ultime risorse visualizzate. È probabile che la risorsa di Azure Bot sia elencata.

  4. Selezionare il collegamento alla risorsa.

    1. Nella sezione Impostazioni selezionare la voce di menu Configurazione.

    2. Nel pannello destro aggiungere le impostazioni seguenti:

      Nome valore
      DirectLineExtensionKey Valore della chiave di estensione servizio app copiata in precedenza.
      DIRECTLINE_EXTENSION_VERSION più recente
    3. Se il bot è ospitato in un cloud di Azure sovrano o con restrizioni diverse, in cui non si accede ad Azure tramite il portale pubblico, è necessario aggiungere anche l'impostazione seguente:

      Nome valore
      DirectLineExtensionABSEndpoint L'endpoint specifico del cloud di Azure in cui è ospitato il bot. Per il cloud USGov, ad esempio, l'endpoint è https://directline.botframework.azure.us/v3/extension.
    4. Nella sezione Configurazione selezionare la sezione Impostazioni generali e attivare Web Socket.

    5. Selezionare Salva per salvare le impostazioni. Il servizio app di Azure verrà riavviato.

Verificare che l'estensione Direct Line e il bot siano configurati

Nel browser, accedere a https://<your_app_service>.azurewebsites.net/.bot. Se tutto è corretto, la pagina restituirà il contenuto JSON seguente:

    {"v":"123","k":true,"ib":true,"ob":true,"initialized":true}
  • v mostra la versione build dell'estensione servizio app Direct Line.
  • k indica se l'estensione è stata in grado di leggere una chiave di estensione dalla configurazione.
  • inizializzato indica se l'estensione è stata in grado di scaricare i metadati del bot dal servizio Bot di Intelligenza artificiale di Azure.
  • ib indica se l'estensione è stata in grado di stabilire una connessione in ingresso al bot.
  • ob indica se l'estensione è stata in grado di stabilire una connessione in uscita dal bot.

Risoluzione dei problemi

  • Se i valori ib e ob visualizzati dall'endpoint .bot sono false, il bot e l'estensione servizio app Direct Line non sono in grado di connettersi tra loro.

    1. Verificare che il codice per l'uso di named pipe sia stato aggiunto al bot.
    2. Verificare che il bot sia in grado di avviare ed eseguire. Gli strumenti utili sono Test in WebChat, connessione di un canale aggiuntivo, debug remoto o registrazione.
    3. Riavviare l'intero servizio app Azure in cui è ospitato il bot per garantire un avvio pulito di tutti i processi.
  • Se il valore inizializzato dell'endpoint con estensione bot è false, l'estensione servizio app Direct Line non è in grado di convalidare la chiave di estensione servizio app aggiunta all'applicazione del bot Impostazioni precedente.

    1. Verificare che il valore sia stato immesso correttamente.
    2. Passare alla chiave di estensione alternativa visualizzata nella pagina Configura Direct Line del bot.

Passaggi successivi