GitHub - Amazon Kendra

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

GitHub

GitHub es un servicio de alojamiento web para el desarrollo de software que proporciona servicios de almacenamiento y administración de códigos con control de versiones. Puede utilizarlos Amazon Kendra para indexar los archivos de repositorio de GitHub Enterprise Cloud (SaaS) y GitHub Enterprise Server (On Prem), las solicitudes de emisión y extracción, los comentarios de las solicitudes de emisión y extracción y los archivos adjuntos de comentarios de las solicitudes de emisión y extracción. También se puede optar por incluir o excluir determinados archivos.

nota

Amazon Kendra ahora es compatible con un conector actualizado GitHub .

La consola se ha actualizado automáticamente para usted. Todos los conectores nuevos que cree en la consola utilizarán la arquitectura actualizada. Si usa elAPI, ahora debe usar el TemplateConfigurationobjeto en lugar del GitHubConfiguration objeto para configurar el conector.

Los conectores configurados con la consola y la API arquitectura anteriores seguirán funcionando tal y como estaban configurados. Sin embargo, no podrá editarlos ni actualizarlos. Si desea editar o actualizar la configuración del conector, debe crear un conector nuevo.

Se recomienda migrar el flujo de trabajo del conector a la versión actualizada. Está previsto que el soporte para los conectores configurados con la arquitectura anterior finalice en junio de 2024.

Puede conectarse Amazon Kendra a su fuente GitHub de datos mediante la Amazon Kendra consola y el TemplateConfigurationAPI.

Para solucionar problemas del conector de la fuente de Amazon Kendra GitHub datos, consulteSolución de problemas con los orígenes de datos.

Características admitidas

Amazon Kendra GitHub el conector de fuente de datos admite las siguientes funciones:

  • Asignaciones de campo

  • control de acceso de usuarios

  • Filtros de inclusión/exclusión

  • Sincronizaciones de contenido completas e incrementales

  • Nube privada virtual () VPC

Requisitos previos

Antes de poder utilizarla Amazon Kendra para indexar la fuente de GitHub datos, realice estos cambios en sus AWS cuentas GitHub y.

En GitHub, asegúrate de tener:

  • Creó un GitHub usuario con permisos administrativos para la GitHub organización.

  • Configuraste un token de acceso personal en Git Hub para usarlo como credenciales de autenticación. Consulta GitHub la documentación sobre cómo crear un token de acceso personal.

    nota

    Le recomendamos que actualice o modifique con regularidad las credenciales y el secreto. Por su propia seguridad, proporcione solo el nivel de acceso necesario. No se recomienda volver a utilizar las credenciales y los datos secretos en varios orígenes de datos ni en las versiones 1.0 y 2.0 del conector (si procede).

  • Recomendado: configuré un OAuth token para las credenciales de autenticación. Utilice un OAuth token para mejorar los límites de API aceleración y el rendimiento del conector. Consulte GitHub la documentación sobre la OAuth autorización.

  • GitHub Apuntó el host URL para el tipo de GitHub servicio que utiliza. Por ejemplo, el servidor URL de GitHub la nube podría ser https://api.github.com y el anfitrión URL del GitHub servidor podría ser https://on-prem-host-url/api/v3/.

  • Apuntó el nombre de su organización para GitHub la cuenta de GitHub Enterprise Cloud (SaaS) o la cuenta de GitHub Enterprise Server (local) a la que desea conectarse. Para encontrar el nombre de su organización, inicie sesión en el GitHub escritorio y seleccione Sus organizaciones en el menú desplegable de su imagen de perfil.

  • Opcional (solo en el servidor): se generó un SSL certificado y se copió la ruta al certificado almacenado en un Amazon S3 depósito. Utilízalo para conectarte GitHub si necesitas una SSL conexión segura. Simplemente puede generar un certificado X509 autofirmado en cualquier ordenador mediante Open. SSL Para ver un ejemplo del uso de Open SSL para crear un certificado X509, consulte Crear y firmar un certificado X509.

  • Se han añadido los siguientes permisos:

    Para la nube GitHub empresarial (SaaS)

    • repo:status— Otorga acceso de lectura y escritura a los estados de confirmación en repositorios públicos y privados. Este ámbito solo es necesario para conceder a otros usuarios o servicios el acceso a los estados de confirmación de los repositorios privados sin conceder acceso al código.

    • repo_deployment— Otorga acceso a los estados de despliegue de los repositorios públicos y privados. Este ámbito solo es necesario para conceder a otros usuarios o servicios el acceso a los estados de despliegue, sin conceder acceso al código.

    • public_repo— Limita el acceso a los repositorios públicos. Esto incluye el acceso de lectura y escritura al código, los estados de confirmación, los proyectos de repositorios, los colaboradores y los estados de despliegue de repositorios y organizaciones públicos. También es obligatorio para los repositorios públicos destacados.

    • repo:invite— Otorga la capacidad de aceptar o rechazar invitaciones a colaborar en un repositorio. Este alcance solo es necesario para permitir que otros usuarios o servicios accedan a las invitaciones sin conceder acceso al código.

    • security_events— Otorga: acceso de lectura y escritura a los eventos de seguridad en el escaneo del códigoAPI. Este alcance solo es necesario para conceder a otros usuarios o servicios el acceso a los eventos de seguridad sin conceder acceso al código.

    • read:org— Acceso de solo lectura a la membresía de la organización, los proyectos de la organización y la membresía del equipo.

    • user:email— Otorga acceso de lectura a las direcciones de correo electrónico de los usuarios. Amazon Kendra lo requiere para rastrear. ACLs

    • user:follow— Otorga acceso para seguir o dejar de seguir a otros usuarios. Amazon Kendra lo requiere para rastrear. ACLs

    • read:user— Otorga acceso para leer los datos del perfil de un usuario. Amazon Kendra lo requiere para rastrear. ACLs

    • workflow— Otorga la posibilidad de añadir y actualizar los archivos de flujo de trabajo de GitHub Actions. Los archivos de flujo de trabajo se pueden archivar sin este ámbito si el mismo archivo (con la misma ruta y el mismo contenido) existe en otra rama del mismo repositorio.

    Para obtener más información, consulta los ámbitos de las OAuth aplicaciones en GitHub Docs.

    Para GitHub Enterprise Server (local)

    • repo:status— Otorga acceso de lectura y escritura a los estados de confirmación en repositorios públicos y privados. Este ámbito solo es necesario para conceder a otros usuarios o servicios el acceso a los estados de confirmación de los repositorios privados sin conceder acceso al código.

    • repo_deployment— Otorga acceso a los estados de despliegue de los repositorios públicos y privados. Este ámbito solo es necesario para conceder a otros usuarios o servicios el acceso a los estados de despliegue, sin conceder acceso al código.

    • public_repo— Limita el acceso a los repositorios públicos. Esto incluye el acceso de lectura y escritura al código, los estados de confirmación, los proyectos de repositorios, los colaboradores y los estados de despliegue de repositorios y organizaciones públicos. También es obligatorio para los repositorios públicos destacados.

    • repo:invite— Otorga la capacidad de aceptar o rechazar invitaciones a colaborar en un repositorio. Este alcance solo es necesario para permitir que otros usuarios o servicios accedan a las invitaciones sin conceder acceso al código.

    • security_events— Otorga: acceso de lectura y escritura a los eventos de seguridad en el escaneo del códigoAPI. Este alcance solo es necesario para conceder a otros usuarios o servicios el acceso a los eventos de seguridad sin conceder acceso al código.

    • read:user— Otorga acceso para leer los datos del perfil de un usuario. Amazon Q Business lo requiere para rastrearACLs.

    • user:email— Otorga acceso de lectura a las direcciones de correo electrónico de los usuarios. Amazon Q Business lo requiere para rastrearACLs.

    • user:follow— Otorga acceso para seguir o dejar de seguir a otros usuarios. Amazon Q Business lo requiere para rastrearACLs.

    • site_admin— Otorga a los administradores del sitio acceso a los puntos API finales de administración de servidores GitHub empresariales.

    • workflow— Otorga la posibilidad de añadir y actualizar los archivos de flujo de trabajo de GitHub Actions. Los archivos de flujo de trabajo se pueden archivar sin este ámbito si el mismo archivo (con la misma ruta y el mismo contenido) existe en otra rama del mismo repositorio.

    Para obtener más información, consulta los ámbitos de OAuth las aplicaciones en GitHub Docs y Descripción de los ámbitos de OAuth las aplicaciones en GitHub Developer.

  • Has marcado que cada documento es único en GitHub las demás fuentes de datos que planeas utilizar para el mismo índice y entre ellas. Cada origen de datos que desee utilizar para un índice no debe contener el mismo documento en varios orígenes de datos. IDsLos documentos son globales en relación con un índice y deben ser únicos por índice.

En el tuyo Cuenta de AWS, asegúrate de tener:

  • Creó un Amazon Kendra índice y, si lo usaAPI, anotó el ID del índice.

  • Creó un IAM rol para la fuente de datos yAPI, si lo usó, anotó el ARN IAM rol.

    nota

    Si cambias el tipo de autenticación y las credenciales, debes actualizar tu IAM rol para acceder al ID AWS Secrets Manager secreto correcto.

  • Guardó sus credenciales de GitHub autenticación en un AWS Secrets Manager secreto yAPI, si las usó, anotó el ARN secreto.

    nota

    Le recomendamos que actualice o modifique con regularidad las credenciales y el secreto. Por su propia seguridad, proporcione solo el nivel de acceso necesario. No se recomienda volver a utilizar las credenciales y los datos secretos en varios orígenes de datos ni en las versiones 1.0 y 2.0 del conector (si procede).

Si no tiene un IAM rol o secreto existente, puede usar la consola para crear un nuevo IAM rol y Secrets Manager secreto al conectar su fuente de GitHub datos Amazon Kendra. Si utiliza elAPI, debe proporcionar el ARN IAM rol y el Secrets Manager secreto existentes y un ID de índice.

Instrucciones de conexión

Para conectarse Amazon Kendra a la fuente de GitHub datos, debe proporcionar los detalles necesarios de la fuente de GitHub datos para Amazon Kendra poder acceder a los datos. Si aún no lo ha configurado GitHub Amazon Kendra, consulteRequisitos previos.

Console

Para conectarse Amazon Kendra a GitHub

  1. Inicie sesión en la Amazon Kendra consola AWS Management Console y ábrala.

  2. En el panel de navegación izquierdo, elija Índices y, a continuación, elija el índice que desee usar de la lista de índices.

    nota

    Puede elegir configurar o editar los ajustes de Control de acceso de usuarios en la Configuración del índice.

  3. En la página Introducción, seleccione Agregar origen de datos.

  4. En la página Agregar fuente de datos, elija el GitHub conector y, a continuación, elija Agregar conector. Si utiliza la versión 2 (si corresponde), elija el GitHub conector con la etiqueta «V2.0".

  5. En la página Especificar detalles del origen de datos, introduzca la siguiente información:

    1. En Nombre y descripción, en Nombre del origen de datos: introduzca un nombre para el origen de datos. Puede incluir guiones, pero no espacios.

    2. (Opcional) Descripción: introduzca una descripción opcional para el origen de datos.

    3. En el idioma predeterminado: elija un idioma para filtrar los documentos para el índice. A menos que especifique lo contrario, el idioma predeterminado es el inglés. El idioma especificado en los metadatos del documento anula el idioma seleccionado.

    4. En Etiquetas, para añadir una nueva etiqueta: incluya etiquetas opcionales para buscar y filtrar sus recursos o realizar un seguimiento de sus AWS costes.

    5. Elija Next (Siguiente).

  6. En la página Definir acceso y seguridad, introduzca la siguiente información:

    1. GitHubfuente: elija entre GitHub Enterprise Cloud y GitHubEnterprise Server.

    2. GitHub host URL: por ejemplo, el host de la GitHub nube URL podría ser https://api.github.com y el anfitrión URL GitHub del servidor podría ser https://on-prem-host-url/api/v3/.

    3. GitHub nombre de la organización: introduzca el nombre de su GitHub organización. Puedes encontrar la información de tu organización en tu GitHub cuenta.

      nota

      GitHub El conector permite rastrear una sola organización por cada instancia del conector de la fuente de datos.

    4. Autorización: active o desactive la información de la lista de control de acceso (ACL) en sus documentos, si tiene una ACL y desea utilizarla para el control de acceso. ACLEspecifica a qué documentos pueden acceder los usuarios y los grupos. La ACL información se utiliza para filtrar los resultados de la búsqueda en función del acceso del usuario o su grupo a los documentos. Para obtener más información, consulte Filtrado de contexto de usuario.

    5. AWS Secrets Manager secreto: elija un secreto existente o cree uno nuevo Secrets Manager para almacenar sus credenciales de GitHub autenticación. Si decide crear un secreto nuevo, se abrirá una ventana de secreto de AWS Secrets Manager .

      1. Introduzca la siguiente información en la ventana Crear un secreto de AWS Secrets Manager :

        1. Nombre del secreto: un nombre para su secreto. El prefijo 'AmazonKendra- GitHub -' se añade automáticamente a tu nombre secreto.

        2. Para el GitHubtoken: introduzca el valor de la credencial de autenticación configurado en. GitHub

      2. Guarde y añada su secreto.

    6. Nube privada virtual (VPC): puede optar por utilizar unaVPC. Si es así, debe agregar subredes y grupos de VPCseguridad.

    7. Rastreador de identidades: especifique si se debe activar el rastreador Amazon Kendra de identidades. El rastreador de identidades utiliza la información de la lista de control de acceso (ACL) de los documentos para filtrar los resultados de la búsqueda en función del acceso del usuario o su grupo a los documentos. Si tiene uno ACL para sus documentos y decide usar el suyoACL, también puede optar por activar el rastreador de identidad para configurar el filtrado Amazon Kendra de los resultados de búsqueda según el contexto del usuario. De lo contrario, si el rastreador de identidad está desactivado, se pueden buscar públicamente todos los documentos. Si desea usar el control de acceso para sus documentos y el rastreador de identidad está desactivado, también puede usarlo PutPrincipalMappingAPIpara cargar la información de acceso de los usuarios y grupos para filtrar el contexto de los usuarios.

    8. IAM rol: elija un IAM rol existente o cree uno nuevo IAM para acceder a las credenciales del repositorio y al contenido del índice.

      nota

      IAM los roles utilizados para los índices no se pueden usar para las fuentes de datos. Si no está seguro de si se utiliza un rol existente para un índiceFAQ, o bien, elija Crear un nuevo rol para evitar errores.

    9. Elija Next (Siguiente).

  7. En la página Configurar ajustes de sincronización, introduzca la siguiente información:

    1. Seleccionar repositorios: elija rastrear todos los repositorios o selecciónelos.

      Si opta por rastrear los repositorios seleccionados, añada los nombres de los repositorios y, si lo desea, el nombre de cualquier rama específica.

    2. Tipos de contenido: elige los tipos de contenido que deseas rastrear, entre archivos, publicaciones, solicitudes de extracción de información y mucho más.

    3. Patrones regex: añada patrones de expresiones regulares para incluir o excluir determinados archivos.

    4. Modo de sincronización: elija cómo desea actualizar el índice cuando cambie el contenido del origen de datos. Cuando sincronizas tu fuente de datos Amazon Kendra por primera vez, todo el contenido se rastrea e indexa de forma predeterminada. Debes realizar una sincronización completa de los datos si la sincronización inicial ha fallado, incluso si no seleccionas la sincronización completa como opción de modo de sincronización.

      • Sincronización completa: indexa todo el contenido de forma inmediata y reemplaza el contenido existente cada vez que la fuente de datos se sincronice con el índice.

      • Sincronización nueva y modificada: indexe solo el contenido nuevo y modificado cada vez que la fuente de datos se sincronice con el índice. Amazon Kendra puede usar el mecanismo de la fuente de datos para realizar un seguimiento de los cambios en el contenido e indexar el contenido que ha cambiado desde la última sincronización.

      • Sincronización nueva, modificada o eliminada: indexe solo el contenido nuevo, modificado y eliminado cada vez que la fuente de datos se sincronice con el índice. Amazon Kendra puede usar el mecanismo de la fuente de datos para rastrear los cambios en el contenido e indexar el contenido que ha cambiado desde la última sincronización.

    5. Calendario de ejecución sincronizado para la frecuencia: elija la frecuencia con la que desea sincronizar el contenido de la fuente de datos y actualizar el índice.

    6. Elija Next (Siguiente).

  8. En la página Establecer asignaciones de campos, especifique la siguiente información:

    1. Campos de fuente de datos predeterminados: seleccione entre los campos de fuente de datos predeterminados Amazon Kendra generados que desee asignar a su índice.

    2. Agregar campo: para agregar campos de origen de datos personalizados para crear un nombre de campo de índice al que asignarlos y el tipo de datos del campo.

    3. Elija Next (Siguiente).

  9. En la página Revisar y crear, compruebe que la información que ha introducido es correcta y, a continuación, seleccione Añadir origen de datos. También puede elegir editar la información desde esta página. El origen de datos aparecerá en la página Orígenes de datos una vez que el origen de datos se haya agregado correctamente.

API

Para conectarse a Amazon Kendra GitHub

Debe especificar uno de los esquemas JSON de la fuente de datos mediante el TemplateConfigurationAPI. Debe proporcionar la siguiente información:

  • Fuente de datos: especifique el tipo de fuente de datos GITHUB al usar el TemplateConfigurationJSONesquema. Especifique también la fuente de datos TEMPLATE al llamar a. CreateDataSourceAPI

  • GitHubtipo: especifique el tipo como SAAS oON_PREMISE.

  • Anfitrión URL: especifique el GitHub host URL o API el punto final. URL Por ejemplo, si utiliza GitHub SaaS/Enterprise Cloud, el host URL podría ser, y en el caso de un servidor GitHub local o empresarialhttps://api.github.com, el host podría ser. URL https://on-prem-host-url/api/v3/

  • Nombre de la organización: especifique el nombre de la organización de la cuenta. GitHub Para encontrar el nombre de su organización, inicie sesión en la GitHub computadora y seleccione Sus organizaciones en el menú desplegable de su imagen de perfil.

  • Modo de sincronización: especifique cómo Amazon Kendra debe actualizarse el índice cuando cambie el contenido de la fuente de datos. Al sincronizar la fuente de datos Amazon Kendra por primera vez, todo el contenido se rastrea e indexa de forma predeterminada. Debes realizar una sincronización completa de los datos si la sincronización inicial ha fallado, incluso si no seleccionas la sincronización completa como opción de modo de sincronización. Puede elegir entre las siguientes opciones:

    • FORCED_FULL_CRAWLpara indexar todo el contenido de forma actualizada, sustituyendo el contenido existente cada vez que la fuente de datos se sincronice con el índice.

    • FULL_CRAWLpara indexar solo el contenido nuevo, modificado y eliminado cada vez que la fuente de datos se sincronice con el índice. Amazon Kendra puede usar el mecanismo de la fuente de datos para realizar un seguimiento de los cambios en el contenido e indexar el contenido que ha cambiado desde la última sincronización.

    • CHANGE_LOGpara indexar solo el contenido nuevo y modificado cada vez que la fuente de datos se sincronice con el índice. Amazon Kendra puede usar el mecanismo de la fuente de datos para realizar un seguimiento de los cambios en el contenido e indexar el contenido que ha cambiado desde la última sincronización.

  • Rastreador de identidad: especifique si se debe activar el rastreador Amazon Kendra de identidad. El rastreador de identidades utiliza la información de la lista de control de acceso (ACL) de los documentos para filtrar los resultados de la búsqueda en función del acceso del usuario o su grupo a los documentos. Si tiene uno ACL para sus documentos y decide usar el suyoACL, también puede optar por activar el rastreador de identidad para configurar el filtrado Amazon Kendra de los resultados de búsqueda según el contexto del usuario. De lo contrario, si el rastreador de identidad está desactivado, se pueden buscar públicamente todos los documentos. Si desea usar el control de acceso para sus documentos y el rastreador de identidad está desactivado, también puede usarlo PutPrincipalMappingAPIpara cargar la información de acceso de los usuarios y grupos para filtrar el contexto de los usuarios.

  • Nombre de recurso secreto de Amazon (ARN): proporcione el nombre de recurso de Amazon (ARN) de un Secrets Manager secreto que contenga las credenciales de autenticación de su GitHub cuenta. El secreto se almacena en una JSON estructura con las siguientes claves:

    { "personalToken": "token" }
  • IAM rol: especifique RoleArn cuándo debe llamar CreateDataSource para proporcionar a un IAM rol permisos para acceder a su Secrets Manager secreto y para llamar al público requerido APIs para el GitHub conector y Amazon Kendra. Para obtener más información, consulte las IAM funciones de las fuentes GitHub de datos.

También puede añadir las siguientes características opcionales:

  • Nube privada virtual (VPC): especifique VpcConfiguration cuándo llamaCreateDataSource. Para obtener más información, consulte Configuración Amazon Kendra para usar un Amazon VPC.

    nota

    Si usa un GitHub servidor, debe usar un Amazon VPC para conectarse a su GitHub servidor.

  • Filtro de repositorios: filtra los repositorios por su nombre y nombre de rama.

  • Tipos de documentos o contenido: especifique si desea rastrear los documentos del repositorio, las ediciones, los comentarios de las publicaciones, los archivos adjuntos a los comentarios de las publicaciones, las solicitudes de extracción, los comentarios de las solicitudes de extracción o los archivos adjuntos de los comentarios de las solicitudes de extracción.

  • Filtros de inclusión y exclusión: especifique si desea incluir o excluir determinados archivos y carpetas.

    nota

    La mayoría de los orígenes de datos utilizan patrones de expresiones regulares, que son patrones de inclusión o exclusión denominados filtros. Si especifica un filtro de inclusión, solo se indexará el contenido que coincida con el filtro de inclusión. Los documentos que no coincidan con el filtro de inclusión no se indexan. Si especifica un filtro de inclusión y exclusión, los documentos que coincidan con el filtro de exclusión no se indexarán, aunque coincidan con el filtro de inclusión.

  • Lista de control de acceso (ACL): especifique si desea rastrear la ACL información de sus documentos, si tiene una ACL y desea utilizarla para el control de acceso. ACLEspecifica a qué documentos pueden acceder los usuarios y los grupos. La ACL información se utiliza para filtrar los resultados de la búsqueda en función del acceso del usuario o su grupo a los documentos. Para obtener más información, consulte Filtrado de contexto de usuario.

  • Asignaciones de campos: elija asignar los campos de la fuente de GitHub datos a los campos de índice. Amazon Kendra Puede incluir campos de documentos, confirmaciones, emisiones, archivos adjuntos de publicaciones, comentarios de publicaciones, solicitudes de extracción, archivos adjuntos de solicitudes de extracción y comentarios de solicitudes de extracción. Para obtener más información, consulte Asignación de campos de origen de datos.

    nota

    El campo del cuerpo del documento o el cuerpo del documento equivalente de sus documentos es obligatorio para que Amazon Kendra pueda buscarlos. Debe asignar el nombre del campo del cuerpo del documento en la fuente de datos al nombre _document_body del campo de índice. Todos los demás campos son opcionales.

Para ver una lista de otras JSON claves importantes que hay que configurar, consulte el esquema GitHub de la plantilla.

Más información

Para obtener más información sobre la integración Amazon Kendra con su fuente de GitHub datos, consulte: