Utilisation d'un pipeline OpenSearch d'ingestion avec Atlassian Services - Amazon OpenSearch Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation d'un pipeline OpenSearch d'ingestion avec Atlassian Services

Vous pouvez utiliser les plugins source Atlassian Jira et Confluence pour intégrer les données des services Atlassian dans votre pipeline d'ingestion. OpenSearch Ces intégrations vous permettent de créer une base de connaissances consultable unifiée en synchronisant des projets Jira complets et des espaces Confluence, tout en préservant la pertinence en temps réel grâce à une surveillance continue et à une synchronisation automatique des mises à jour.

Integrating with Jira

Transformez votre expérience Jira grâce à de puissantes fonctionnalités de recherche contextuelle en intégrant votre contenu Jira dans. OpenSearch Le plugin source Atlassian Jira de Data Prepper vous permet de créer une base de connaissances unifiée consultable en synchronisant des projets Jira complets, tout en préservant leur pertinence en temps réel grâce à une surveillance continue et à une synchronisation automatique des mises à jour. Cette intégration permet la synchronisation des données avec des options de filtrage flexibles pour des projets, des types de problèmes et des statuts spécifiques, garantissant ainsi que seules les informations dont vous avez besoin sont importées.

Pour garantir une connectivité sûre et fiable, le plugin prend en charge plusieurs méthodes d'authentification, notamment l'authentification de base par clé d'API et l' OAuth2authentification, avec la sécurité supplémentaire de la gestion des informations d'identification à l'aide d'un secret stocké dans AWS Secrets Manager. Il propose également le renouvellement automatique des jetons pour un accès ininterrompu, garantissant ainsi un fonctionnement continu. Basée sur la version 2 de l'API d'Atlassian, cette intégration permet aux équipes de tirer des enseignements précieux de leurs données Jira grâce aux fonctionnalités OpenSearch de recherche avancées.

Integrating with Confluence

Améliorez la gestion des connaissances et les capacités de collaboration de votre équipe en intégrant le contenu Atlassian Confluence OpenSearch via le plugin source Confluence de Data Prepper. Cette intégration vous permet de créer un référentiel centralisé et consultable de connaissances collectives, améliorant ainsi la découverte d'informations et la productivité des équipes. En synchronisant le contenu de Confluence et en surveillant en permanence les mises à jour, le plugin garantit que votre OpenSearch index reste complet up-to-date.

L'intégration offre des options de filtrage flexibles, vous permettant d'importer du contenu de manière sélective à partir d'espaces ou de types de pages spécifiques, en adaptant le contenu synchronisé aux besoins de votre organisation. Le plugin prend en charge à la fois les clés API de base et les méthodes OAuth2 d'authentification, avec la possibilité de gérer en toute sécurité les informations d'identification via AWS Secrets Manager. La fonction de renouvellement automatique des jetons du plugin garantit un accès ininterrompu et un fonctionnement sans faille. Basée sur l'API Confluence d'Atlassian, cette intégration permet aux équipes de tirer parti des fonctionnalités de recherche avancées OpenSearch de leur contenu Confluence, améliorant ainsi l'accessibilité et l'utilisation des informations au sein de l'organisation.

Prérequis

Avant de créer votre pipeline OpenSearch d'ingestion, procédez comme suit :

  1. Préparez les informations d'identification de votre site Jira en choisissant l'une des options suivantes. OpenSearch L'ingestion ne nécessite qu'une ReadOnly autorisation du contenu.

    1. Option 1 : clé API — Connectez-vous à votre compte Atlassian et utilisez les informations de la rubrique suivante pour générer votre clé API :

    2. Option 2 : OAuth2 — Connectez-vous à votre compte Atlassian et utilisez les informations qu'il contient. Connexion d'un pipeline Amazon OpenSearch Ingestion à Atlassian Jira ou Confluence à l'aide de la version 2.0 OAuth

  2. Créez un secret AWS Secrets Manager pour stocker les informations d'identification créées à l'étape précédente. Effectuez les choix suivants en suivant la procédure :

    • Pour Secret type (Type de secret), choisissez Other type of secret (Autre type de secret).

    • Pour les paires clé/valeur, créez les paires suivantes, en fonction du type d'autorisation sélectionné :

    API key
    { "username": user-name-usualy-email-id, "password": api-key }
    OAuth 2.0
    { "clientId": client-id "clientSecret": client-secret "accessKey": access-key "refreshKey": refresh-key }

    Après avoir créé le secret, copiez le nom de ressource Amazon (ARN) du secret. Vous allez l'inclure dans la politique d'autorisation des rôles du pipeline.

Configuration d'un rôle de pipeline

Le rôle transmis dans le pipeline doit être associé à la politique suivante pour pouvoir lire et écrire sur le secret créé dans la section des prérequis.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretReadWrite", "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:PutSecretValue", "secretsmanager:ListSecretVersionIds" ], "Resource": "arn:aws:secretsmanager:us-east-1:111122223333:secret:secret-name-random-6-characters" } ] }

Le rôle doit également être associé à une politique d'accès et d'écriture sur le récepteur que vous avez choisi. Par exemple, si vous OpenSearch le choisissez comme récepteur, la politique est similaire à la suivante :

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "OpenSearchWritePolicy", "Effect": "Allow", "Action": "aoss:*", "Resource": "arn:aws:aoss:us-east-1:111122223333:collection/collection-id" } ] }

Configuration du pipeline de connecteurs Jira

Vous pouvez utiliser un plan Atlassian Jira préconfiguré pour créer ce pipeline. Pour de plus amples informations, veuillez consulter Travailler avec des plans.

Remplacez placeholder values par vos propres informations.

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 Compression des requêtes HTTP dans 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"

Clé des attributs de la source Jira :

  1. hosts : votre URL Jira dans le cloud ou sur site. En général, cela ressemble àhttps://your-domain-name.atlassian.net/.

  2. accusés de réception : pour garantir la livraison des données jusqu'au récepteur.

  3. authentification : décrit comment vous souhaitez que le pipeline accède à votre instance Jira. Choisissez Basic ou OAuth2 et spécifiez les attributs clés correspondants faisant référence aux clés de votre AWS secret.

  4. filtre : cette section vous permet de sélectionner la partie de vos données Jira à extraire et à synchroniser.

    1. projet : Répertoriez les clés de projet que vous souhaitez synchroniser dans la include section. Sinon, listez les projets que vous souhaitez exclure dans la exclude section. Fournissez une seule des options d'inclusion ou d'exclusion à un moment donné.

    2. issue_type : types de problèmes spécifiques que vous souhaitez synchroniser. Suivez le modèle similaire include ou le exclude modèle qui répond à vos besoins. Notez que les pièces jointes apparaîtront sous forme de liens d'ancrage vers la pièce jointe d'origine, mais que le contenu de la pièce jointe ne sera pas extrait.

    3. status : filtre d'état spécifique que vous souhaitez appliquer à la requête d'extraction de données. Si vous le spécifiezinclude, seuls les tickets présentant ces statuts seront synchronisés. Si vous le spécifiezexclude, tous les tickets, à l'exception de ceux dont le statut d'exclusion est répertorié, seront synchronisés.

Configuration du pipeline du connecteur Confluence

Vous pouvez utiliser un plan Atlassian Confluence préconfiguré pour créer ce pipeline. Pour de plus amples informations, veuillez consulter Travailler avec des plans.

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 Compression des requêtes HTTP dans 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"

Attributs clés de la source Confluence :

  1. hosts : votre URL Confluence dans le cloud ou sur site. En général, cela ressemble à https://your-domain-name.atlassian.net/

  2. accusés de réception : pour garantir la livraison des données jusqu'au récepteur.

  3. authentification : décrit comment vous souhaitez que le pipeline accède à votre instance Confluence. Choisissez Basic ou OAuth2 et spécifiez les attributs clés correspondants faisant référence aux clés de votre AWS secret.

  4. filtre : cette section vous permet de sélectionner la partie de vos données Confluence à extraire et à synchroniser.

    1. espace : Répertoriez les touches d'espace que vous souhaitez synchroniser dans la include section. Sinon, listez les espaces que vous souhaitez exclure dans la exclude section. Fournissez une seule des options d'inclusion ou d'exclusion à un moment donné.

    2. page_type : types de pages spécifiques (comme une page, un article de blog ou des pièces jointes) que vous souhaitez synchroniser. Suivez le modèle similaire include ou le exclude modèle qui répond à vos besoins. Notez que les pièces jointes apparaîtront sous forme de liens d'ancrage vers la pièce jointe d'origine, mais que le contenu de la pièce jointe ne sera pas extrait.

Cohérence des données

Sur la base des filtres spécifiés dans le pipeline YAML, les projets (ou espaces) sélectionnés seront extraits une fois et entièrement synchronisés avec le récepteur cible. Ensuite, la surveillance continue des modifications capturera les modifications au fur et à mesure qu'elles se produisent et mettra à jour les données dans le récepteur. Une exception est que le suivi des modifications synchronise uniquement les update actions, create et non les delete actions.

Limites

  • Les actions de suppression effectuées par l'utilisateur ne seront pas synchronisées. Une fois enregistrées dans le récepteur, les données y resteront. Les mises à jour remplaceront le contenu existant par de nouvelles modifications si le mappage des identifiants est spécifié dans les paramètres du récepteur.

  • Les instances locales utilisant d'anciennes versions du logiciel Atlassian qui ne prennent pas en charge les éléments suivants ne APIs sont pas compatibles avec cette source :

    • API de recherche Jira version 3

      • rest/api/3/search

      • rest/api/3/issue

    • Confluence

      • wiki/rest/api/content/search

      • wiki/rest/api/content

      • wiki/rest/api/settings/systemInfo

Informations relatives CloudWatch aux connecteurs Atlassian

Type : métriques du connecteur Jira

Source Métrique Type : Metric
acknowledgementSetSuccesses.nombre Compteur Si les accusés de réception sont activés, cette métrique indique le nombre de tickets synchronisés avec succès.
acknowledgementSetFailures.nombre Compteur Si les accusés de réception sont activés, cette métrique indique le nombre de tickets qui n'ont pas pu être synchronisés.
CrawlingTime.AVG Horloge Le temps qu'il a fallu pour analyser tous les nouveaux changements.
ticketFetchLatency.avg Horloge La latence moyenne de l'API de récupération des tickets.
ticketFetchLatency.max Horloge La latence maximale de l'API de récupération des tickets.
Tickets demandés. Nombre Compteur Nombre de demandes de récupération de tickets effectuées.
ticketRequestedFailed.nombre Compteur Nombre de demandes de récupération de tickets ayant échoué.
ticketRequestedSuccess.nombre Compteur Nombre de demandes d'extraction de tickets réussies.
searchCallLatency.avg Horloge Latence moyenne des appels de l'API de recherche.
searchCallLatency.max Horloge Latence maximale des appels de l'API de recherche.
searchResultsFound.nombre Compteur Nombre d'éléments trouvés lors d'un appel de recherche donné.
searchRequestFailed.nombre Compteur Nombre d'échecs d'appels de l'API de recherche.
Défaillances d'authentification. Nombre Compteur Nombre d'échecs d'authentification.

Type : métriques du connecteur Confluence

Source Métrique Type : Metric
acknowledgementSetSuccesses.nombre Compteur Si les accusés de réception sont activés, cette métrique indique le nombre de pages synchronisées avec succès.
acknowledgementSetFailures.nombre Compteur Si les accusés de réception sont activés, cette métrique indique le nombre de pages qui n'ont pas pu être synchronisées.
CrawlingTime.AVG Horloge Le temps qu'il a fallu pour analyser tous les nouveaux changements.
pageFetchLatency.avg Horloge Latence de l'API de récupération de contenu (moyenne).
pageFetchLatency.max Horloge Latence de l'API de récupération de contenu (maximale).
Nombre de pages demandées Compteur Nombre d'appels de l'API de récupération de contenu.
pageRequestFailed.nombre Compteur Nombre de demandes infructueuses de l'API de récupération de contenu.
pageRequestedSuccess.nombre Compteur Nombre de demandes d'API de récupération de contenu réussies.
searchCallLatency.avg Horloge Latence moyenne des appels de l'API de recherche.
searchCallLatency.max Horloge Latence maximale des appels de l'API de recherche
searchResultsFound.nombre Compteur Nombre d'éléments trouvés lors d'un appel de recherche donné.
searchRequestsFailed.nombre Compteur Nombre d'échecs d'appels de l'API de recherche.
Défaillances d'authentification. Nombre Compteur Nombre d'échecs d'authentification.