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.
Uso de una canalización OpenSearch de ingestión con Atlassian Services
Puedes usar los complementos fuente de Atlassian Jira y Confluence para incorporar datos de los servicios de Atlassian a tu canal de ingestión. OpenSearch Estas integraciones te permiten crear una base de conocimientos unificada y con capacidad de búsqueda al sincronizar proyectos completos de Jira y los espacios de Confluence, a la vez que mantienes la relevancia en tiempo real mediante la supervisión continua y la sincronización automática de las actualizaciones.
Requisitos previos
Antes de crear tu canal de OpenSearch ingestión, sigue los siguientes pasos:
-
Prepara las credenciales de tu sitio de Jira seleccionando una de las siguientes opciones. OpenSearch La ingestión solo requiere la
ReadOnly
autorización del contenido.-
Opción 1: clave de API: inicia sesión en tu cuenta de Atlassian y utiliza la información del siguiente tema para generar tu clave de API:
-
Opción 2: OAuth2 — Inicia sesión en tu cuenta de Atlassian y utiliza la información en ella. Conexión de una canalización de Amazon OpenSearch Ingestion a Atlassian, Jira o Confluence mediante la versión 2.0 OAuth
-
-
Crea una entrada secreta AWS Secrets Manager para almacenar las credenciales creadas en el paso anterior. Realice las siguientes elecciones a medida que sigue el procedimiento:
-
En Secret type (Tipo de secreto), elija Other type of secret (Otro tipo de secreto).
-
Para los pares clave/valor, cree los siguientes pares, según el tipo de autorización que haya seleccionado:
Una vez creado el secreto, copia el nombre de recurso de Amazon (ARN) del secreto. Lo incluirás en la política de permisos de los roles en proceso.
-
Configura un rol de canalización
El rol transferido en la canalización debe incluir la siguiente política de lectura y escritura en el secreto creado en la sección de requisitos previos.
El rol también debe incluir una política de acceso y escritura en el servidor que elijas. Por ejemplo, si eliges OpenSearch como destino, la política es similar a la siguiente:
Configuración de canalización de conectores de Jira
Puedes usar un blueprint de Atlassian Jira preconfigurado para crear esta canalización. Para obtener más información, consulte ¿Trabajando con planos.
Reemplace los placeholder values
con su propia información.
version: "2" extension: aws: secrets: jira-account-credentials: secret_id: "
secret-arn
" region: "secret-region
" sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role
" atlassian-jira-pipeline: source: jira: # We only support one host url for now hosts: ["jira-host-url
"] acknowledgments: true authentication: # Provide one of the authentication method to use. Supported methods are 'basic' and 'oauth2'. # For basic authentication, password is the API key that you generate using your jira account basic: username: ${{aws_secrets:jira-account-credentials:username}} password: ${{aws_secrets:jira-account-credentials:password}} # For OAuth2 based authentication, we require the following 4 key values stored in the secret # Follow atlassian instructions at the below link to generate these keys. # https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/ # If you are using OAuth2 authentication, we also require, write permission to your AWS secret to # be able to write the renewed tokens back into the secret. # oauth2: # client_id: ${{aws_secrets:jira-account-credentials:clientId}} # client_secret: ${{aws_secrets:jira-account-credentials:clientSecret}} # access_token: ${{aws_secrets:jira-account-credentials:accessToken}} # refresh_token: ${{aws_secrets:jira-account-credentials:refreshToken}} filter: project: key: include: # This is not project name. # It is an alphanumeric project key that you can find under project details in Jira. - "project-key
" - "project-key
" # exclude: # - "project-key
" # - "project-key
" issue_type: include: - "issue-type
" # - "Story" # - "Bug" # - "Task" # exclude: # - "Epic" status: include: - "ticket-status
" # - "To Do" # - "In Progress" # - "Done" # exclude: # - "Backlog" sink: - opensearch: # Provide an Amazon OpenSearch Service domain endpoint hosts: [ "https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com
" ] index: "index_${getMetadata(\"project\")}" # Ensure adding unique document id which is the unique ticket id in this case document_id: '${/id}' aws: # Provide a Role ARN with access to the domain. This role should have a trust relationship with osis-pipelines.amazonaws.com sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role
" # Provide the region of the domain. region: "us-east-1
" # Enable the 'serverless' flag if the sink is an Amazon OpenSearch Serverless collection serverless: false # serverless_options: # Specify a name here to create or update network policy for the serverless collection # network_policy_name: "network-policy-name" # Enable the 'distribution_version' setting if the Amazon OpenSearch Service domain is of version Elasticsearch 6.x # distribution_version: "es6" # Enable and switch the 'enable_request_compression' flag if the default compression setting is changed in the domain. # See Compresión de solicitudes HTTP en Amazon OpenSearch Service # enable_request_compression: true/false # Optional: Enable the S3 DLQ to capture any failed requests in an S3 bucket. Delete this entire block if you don't want a DLQ. dlq: s3: # Provide an S3 bucket bucket: "your-dlq-bucket-name
" # Provide a key path prefix for the failed requests # key_path_prefix: "kinesis-pipeline/logs/dlq" # Provide the region of the bucket. region: "us-east-1
" # Provide a Role ARN with access to the bucket. This role should have a trust relationship with osis-pipelines.amazonaws.com sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role
"
Los atributos clave de la fuente de Jira son:
-
hosts: tu URL local o en la nube de Jira. En general, se ve así.
https://
your-domain-name
.atlassian.net/ -
agradecimientos: para garantizar la entrega de los datos hasta el sumidero.
-
autenticación: describe cómo quieres que la canalización acceda a tu instancia de Jira. Elige
Basic
o especificaOAuth2
los atributos clave correspondientes que hagan referencia a las claves de tu AWS secreto. -
filtro: esta sección te ayuda a seleccionar qué parte de tus datos de Jira deseas extraer y sincronizar.
-
proyecto: enumera las claves del proyecto que quieres sincronizar en la
include
sección. De lo contrario, enumera los proyectos que deseas excluir en laexclude
sección. Proporcione solo una de las opciones de inclusión o exclusión en un momento dado. -
issue_type: tipos de problemas específicos que quieres sincronizar. Sigue un
exclude
patrón similarinclude
o que se adapte a tus necesidades. Tenga en cuenta que los archivos adjuntos aparecerán como enlaces de anclaje al archivo adjunto original, pero el contenido del archivo adjunto no se extraerá. -
estado: filtro de estado específico que desea aplicar a la consulta de extracción de datos. Si lo especifica
include
, solo se sincronizarán los tickets con esos estados. Si lo especificasexclude
, se sincronizarán todos los billetes, excepto los que tengan los estados de exclusión enumerados.
-
Configuración de canalización del conector de Confluence
Puedes usar un plano de Atlassian Confluence preconfigurado para crear esta canalización. Para obtener más información, consulte ¿Trabajando con planos.
version: "2" extension: aws: secrets: confluence-account-credentials: secret_id: "
secret-arn
" region: "secret-region
" sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role
" atlassian-confluence-pipeline: source: confluence: # We currently support only one host URL. hosts: ["confluence-host-url
"] acknowledgments: true authentication: # Provide one of the authentication method to use. Supported methods are 'basic' and 'oauth2'. # For basic authentication, password is the API key that you generate using your Confluence account basic: username: ${{aws_secrets:confluence-account-credentials:confluenceId}} password: ${{aws_secrets:confluence-account-credentials:confluenceCredential}} # For OAuth2 based authentication, we require the following 4 key values stored in the secret # Follow atlassian instructions at the following link to generate these keys: # https://developer.atlassian.com/cloud/confluence/oauth-2-3lo-apps/ # If you are using OAuth2 authentication, we also require write permission to your AWS secret to # be able to write the renewed tokens back into the secret. # oauth2: # client_id: ${{aws_secrets:confluence-account-credentials:clientId}} # client_secret: ${{aws_secrets:confluence-account-credentials:clientSecret}} # access_token: ${{aws_secrets:confluence-account-credentials:accessToken}} # refresh_token: ${{aws_secrets:confluence-account-credentials:refreshToken}} filter: space: key: include: # This is not space name. # It is a space key that you can find under space details in Confluence. - "space key
" - "space key
" # exclude: # - "space key
" # - "space key
" page_type: include: - "content type
" # - "page" # - "blogpost" # - "comment" # exclude: # - "attachment" sink: - opensearch: # Provide an Amazon OpenSearch Service domain endpoint hosts: [ "https://search-mydomain-1a2a3a4a5a6a7a8a9a0a9a8a7a.us-east-1.es.amazonaws.com
" ] index: "index_${getMetadata(\"space\")}" # Ensure adding unique document id which is the unique ticket ID in this case. document_id: '${/id}' aws: # Provide the Amazon Resource Name (ARN) for a role with access to the domain. This role should have a trust relationship with osis-pipelines.amazonaws.com. sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role
" # Provide the Region of the domain. region: "us-east-1
" # Enable the 'serverless' flag if the sink is an Amazon OpenSearch Serverless collection serverless: false # serverless_options: # Specify a name here to create or update network policy for the serverless collection. # network_policy_name: "network-policy-name" # Enable the 'distribution_version' setting if the Amazon OpenSearch Service domain is of version Elasticsearch 6.x # distribution_version: "es6" # Enable and switch the 'enable_request_compression' flag if the default compression setting is changed in the domain. # For more information, see Compresión de solicitudes HTTP en Amazon OpenSearch Service. # enable_request_compression: true/false # Optional: Enable the S3 DLQ to capture any failed requests in an S3 bucket. Delete this entire block if you don't want a DLQ. dlq: s3: # Provide an S3 bucket bucket: "your-dlq-bucket-name
" # Provide a key path prefix for the failed requests # key_path_prefix: "kinesis-pipeline/logs/dlq" # Provide the Rregion of the bucket. region: "us-east-1
" # Provide the Amazon Resource Name (ARN) for a role with access to the bucket. This role should have a trust relationship with osis-pipelines.amazonaws.com sts_role_arn: "arn:aws:iam::123456789012:role/Example-Role
"
Atributos clave de la fuente de Confluence:
-
hosts: tu URL local o en la nube de Confluence. En general, tiene el siguiente aspecto
https://
your-domain-name
.atlassian.net/ -
agradecimientos: para garantizar la entrega de los datos hasta el sumidero.
-
autenticación: describe cómo quieres que la canalización acceda a tu instancia de Confluence. Elige
Basic
o especificaOAuth2
los atributos clave correspondientes que hacen referencia a las claves de tu AWS secreto. -
filtro: esta sección te ayuda a seleccionar qué parte de tus datos de Confluence deseas extraer y sincronizar.
-
espacio: muestra las teclas de espacio que quieres sincronizar en la
include
sección. De lo contrario, enumera los espacios que deseas excluir en laexclude
sección. Proporcione solo una de las opciones de inclusión o exclusión en un momento dado. -
page_type: tipos de página específicos (como página, entrada de blog o archivos adjuntos) que deseas sincronizar. Sigue un
exclude
patrón similarinclude
o que se adapte a tus necesidades. Tenga en cuenta que los archivos adjuntos aparecerán como enlaces de anclaje al archivo adjunto original, pero el contenido del archivo adjunto no se extraerá.
-
Coherencia de datos
Según los filtros especificados en el YAML de la canalización, los proyectos (o espacios) seleccionados se extraerán una vez y se sincronizarán completamente con el receptor de destino. Luego, la supervisión continua de los cambios capturará los cambios a medida que se produzcan y actualizará los datos del sumidero. Una excepción es que la supervisión de cambios sincroniza solo update
las acciones create
y no las delete
acciones.
Limitaciones
-
Las acciones de eliminación de usuarios no se sincronizarán. Una vez registrados en el sumidero, los datos permanecerán en el sumidero. Las actualizaciones sobrescribirán el contenido existente con nuevos cambios si se especifica la asignación de ID en la configuración del receptor.
-
Las instancias locales que utilizan versiones anteriores del software de Atlassian que no son compatibles con lo siguiente no APIs son compatibles con esta fuente:
-
API de búsqueda de Jira, versión 3
-
rest/api/3/search
-
rest/api/3/issue
-
-
Confluence
-
wiki/rest/api/content/search
-
wiki/rest/api/content
-
wiki/rest/api/settings/systemInfo
-
-
Las métricas están disponibles CloudWatch para los conectores de Atlassian
Tipo: métricas del conector Jira
Origen | Métrica | Tipo de métrica |
---|---|---|
acknowledgementSetSuccesses.contar | Contador | Si las confirmaciones están habilitadas, esta métrica proporciona la cantidad de tickets que se sincronizaron correctamente. |
acknowledgementSetFailures... recuento | Contador | Si las confirmaciones están habilitadas, esta métrica proporciona la cantidad de tickets que no se pudieron sincronizar. |
Tiempo de rastreo. Promedio | Timer | El tiempo que se tardó en revisar todos los cambios nuevos. |
ticketFetchLatency.avg | Timer | El promedio de latencia de la API de búsqueda de tickets. |
ticketFetchLatency.max | Timer | La latencia máxima de la API de obtención de tickets. |
Entradas solicitadas. Recuento | Contador | Número de solicitudes de recogida de entradas realizadas. |
ticketRequestedFailed... recuento | Contador | Número de solicitudes de recuperación de tickets fallidas. |
ticketRequestedSuccess... recuento | Contador | Número de solicitudes de búsqueda de entradas realizadas correctamente. |
searchCallLatency.avg | Timer | Latencia media de llamadas a la API de búsqueda. |
searchCallLatency.max | Timer | Latencia máxima de llamadas a la API de búsqueda. |
searchResultsFound.count | Contador | Número de artículos encontrados en una llamada de búsqueda determinada. |
searchRequestFailed.contar | Contador | Los errores en las llamadas a la API de búsqueda cuentan. |
AuthFailures.count | Contador | Recuento de errores de autenticación. |
Tipo: métricas del conector de Confluence
Origen | Métrica | Tipo de métrica |
---|---|---|
acknowledgementSetSuccesses.contar | Contador | Si las confirmaciones están habilitadas, esta métrica proporciona el número de páginas que se sincronizaron correctamente. |
acknowledgementSetFailures... recuento | Contador | Si las confirmaciones están habilitadas, esta métrica proporciona el número de páginas que no se pudieron sincronizar. |
Tiempo de rastreo. Avg | Timer | El tiempo que se tardó en revisar todos los cambios nuevos. |
pageFetchLatency.avg | Timer | Latencia de la API de obtención de contenido (media). |
pageFetchLatency.max | Timer | Latencia de la API de obtención de contenido (máxima). |
Páginas solicitadas. Recuento | Contador | Número de invocaciones de la API de obtención de contenido. |
pageRequestFailed.recuento | Contador | Número de solicitudes fallidas de la API de obtención de contenido. |
pageRequestedSuccess.count | Contador | Número de solicitudes satisfactorias de la API de obtención de contenido. |
searchCallLatency.avg | Timer | Latencia media de llamadas a la API de búsqueda. |
searchCallLatency.max | Timer | Latencia máxima de llamadas a la API de búsqueda |
searchResultsFound.count | Contador | Número de artículos encontrados en una llamada de búsqueda determinada. |
searchRequestsFailed.contar | Contador | Los errores en las llamadas a la API de búsqueda cuentan. |
AuthFailures.count | Contador | Recuento de errores de autenticación. |