Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di una pipeline di OpenSearch ingestione con Atlassian Services
Puoi utilizzare i plugin di origine di Atlassian Jira e Confluence per importare dati dai servizi Atlassian nella tua pipeline di Ingestion. OpenSearch Queste integrazioni consentono di creare una knowledge base unificata e ricercabile sincronizzando progetti Jira completi e spazi Confluence, mantenendo al contempo la pertinenza in tempo reale attraverso il monitoraggio continuo e la sincronizzazione automatica degli aggiornamenti.
Argomenti
Prerequisiti
Prima di creare la pipeline di Ingestion, completa i seguenti passaggi: OpenSearch
-
Prepara le credenziali per il tuo sito Jira scegliendo una delle seguenti opzioni. OpenSearch L'ingestione richiede solo l'
ReadOnlyautorizzazione al contenuto.-
Opzione 1: chiave API: accedi al tuo account Atlassian e utilizza le informazioni nel seguente argomento per generare la tua chiave API:
-
Opzione 2: OAuth2 — Accedi al tuo account Atlassian e usa le informazioni in esso contenute. Connessione di una pipeline Amazon OpenSearch Ingestion ad Atlassian Jira o Confluence tramite 2.0 OAuth
-
-
Crea un account segreto Gestione dei segreti AWS per archiviare le credenziali create nel passaggio precedente. Effettua le seguenti scelte mentre segui la procedura:
-
Per Secret type (Tipo di segreto), scegli Other type of secret (Altro tipo di segreto).
-
Per le coppie chiave/valore, create le seguenti coppie, a seconda del tipo di autorizzazione selezionato:
Dopo aver creato il segreto, copia l'Amazon Resource Name (ARN) del segreto. Lo includerai nella politica di autorizzazione dei ruoli della pipeline.
-
Configurare un ruolo della pipeline
Al ruolo passato nella pipeline deve essere allegata la seguente politica di lettura e scrittura nel segreto creato nella sezione dei prerequisiti.
Il ruolo dovrebbe inoltre avere una politica allegata per l'accesso e la scrittura nel sink prescelto. Ad esempio, se scegli OpenSearch come sink, la policy è simile alla seguente:
Configurazione della pipeline del connettore Jira
Puoi utilizzare un blueprint Atlassian Jira preconfigurato per creare questa pipeline. Per ulteriori informazioni, consulta Lavorare con i progetti.
Sostituire placeholder values con le proprie informazioni.
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 Compressione delle richieste HTTP in 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"
Chiave degli attributi nel codice sorgente di Jira:
-
hosts: il tuo URL Jira cloud o locale. In genere, sembra.
https://your-domain-name.atlassian.net/ -
riconoscimenti: per garantire la consegna dei dati fino al lavandino.
-
autenticazione: descrive come desideri che la pipeline acceda alla tua istanza Jira. Scegli
Basico specificaOAuth2gli attributi chiave corrispondenti che fanno riferimento alle chiavi del tuo segreto. AWS -
filtro: questa sezione ti aiuta a selezionare quale parte dei tuoi dati Jira estrarre e sincronizzare.
-
progetto: Elenca le chiavi del progetto che desideri sincronizzare nella
includesezione. Altrimenti, elenca i progetti che desideri escludere nellaexcludesezione. Fornisci solo una delle opzioni di inclusione o esclusione alla volta. -
issue_type: tipi di problemi specifici che desideri sincronizzare. Segui lo
excludeschema simileincludeo più adatto alle tue esigenze. Tieni presente che gli allegati verranno visualizzati come collegamenti di ancoraggio all'allegato originale, ma il contenuto dell'allegato non verrà estratto. -
status: filtro di stato specifico che desideri applicare per la query di estrazione dei dati. Se lo specifichi
include, verranno sincronizzati solo i ticket con questi stati. Se lo specifichiexclude, verranno sincronizzati tutti i ticket tranne quelli con gli stati esclusi elencati.
-
Configurazione della pipeline del connettore Confluence
Puoi utilizzare un blueprint Atlassian Confluence preconfigurato per creare questa pipeline. Per ulteriori informazioni, consulta Lavorare con i progetti.
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 Compressione delle richieste HTTP in 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"
Attributi chiave nel sorgente Confluence:
-
host: il tuo URL nel cloud o locale di Confluence. In genere, sembra
https://your-domain-name.atlassian.net/ -
riconoscimenti: per garantire la consegna dei dati fino al lavandino.
-
autenticazione: descrive come desideri che la pipeline acceda alla tua istanza Confluence. Scegli
BasicoOAuth2e specifica gli attributi chiave corrispondenti che fanno riferimento alle chiavi del tuo segreto. AWS -
filtro: questa sezione ti aiuta a selezionare quale parte dei dati di Confluence estrarre e sincronizzare.
-
spazio: elenca i tasti spaziatori che desideri sincronizzare nella sezione.
includeAltrimenti, elenca gli spazi che desideri escludere nellaexcludesezione. Fornisci solo una delle opzioni di inclusione o esclusione alla volta. -
page_type: tipi di pagina specifici (come pagina, post del blog o allegati) che desideri sincronizzare. Segui lo
excludeschema simileincludeo più adatto alle tue esigenze. Tieni presente che gli allegati verranno visualizzati come collegamenti di ancoraggio all'allegato originale, ma il contenuto dell'allegato non verrà estratto.
-
Coerenza dei dati
In base ai filtri specificati nella pipeline YAML, i progetti (o gli spazi) selezionati verranno estratti una volta e completamente sincronizzati con il sink di destinazione. Quindi il monitoraggio continuo delle modifiche acquisirà le modifiche man mano che si verificano e aggiornerà i dati nel sink. Un'eccezione è che il monitoraggio delle modifiche sincronizza solo update le azioni create e non le delete azioni.
Limitazioni
-
Le azioni di eliminazione degli utenti non verranno sincronizzate. I dati una volta registrati nel lavandino rimarranno nel lavandino. Gli aggiornamenti sovrascriveranno il contenuto esistente con nuove modifiche se la mappatura degli ID è specificata nelle impostazioni del sink.
-
Le istanze locali che utilizzano versioni precedenti del software Atlassian che non supportano quanto segue non APIs sono compatibili con questa fonte:
-
API Jira Search versione 3
-
rest/api/3/search -
rest/api/3/issue
-
-
Confluence
-
wiki/rest/api/content/search -
wiki/rest/api/content -
wiki/rest/api/settings/systemInfo
-
-
Metriche inserite CloudWatch per i connettori Atlassian
Tipo: metriche dei connettori Jira
| Origine | Parametro | Tipo di metrica |
|---|---|---|
| acknowledgementSetSuccesses.count | Contatore | Se i riconoscimenti sono abilitati, questa metrica fornisce il numero di ticket sincronizzati correttamente. |
| acknowledgementSetFailures.contare | Contatore | Se i riconoscimenti sono abilitati, questa metrica fornisce il numero di ticket che non sono stati sincronizzati. |
| CrawlingTime.avg | Timer | Il tempo impiegato per visualizzare tutte le nuove modifiche. |
| ticketFetchLatency.avg | Timer | La media di latenza dell'API Ticket Fetch. |
| ticketFetchLatency.max | Timer | La latenza massima dell'API di recupero dei biglietti. |
| Tickets richiesti.count | Contatore | Numero di richieste di recupero dei biglietti effettuate. |
| ticketRequestedFailed.contare | Contatore | Numero di richieste di recupero dei ticket non riuscite. |
| ticketRequestedSuccess.count | Contatore | Numero di richieste di recupero dei ticket riuscite. |
| searchCallLatency.avg | Timer | Latenza media di latenza delle chiamate dell'API di ricerca. |
| searchCallLatency.max | Timer | Latenza massima delle chiamate dell'API di ricerca. |
| searchResultsFound.count | Contatore | Numero di elementi trovati in una determinata chiamata di ricerca. |
| searchRequestFailed.count | Contatore | Contano gli errori delle chiamate all'API di ricerca. |
| Authfailures.count | Contatore | Numero di errori di autenticazione. |
Tipo: metriche del connettore Confluence
| Origine | Parametro | Tipo di metrica |
|---|---|---|
| acknowledgementSetSuccesses.count | Contatore | Se i riconoscimenti sono abilitati, questa metrica fornisce il numero di pagine sincronizzate correttamente. |
| acknowledgementSetFailures.contare | Contatore | Se i riconoscimenti sono abilitati, questa metrica fornisce il numero di pagine che non sono state sincronizzate. |
| CrawlingTime.avg | Timer | Il tempo impiegato per visualizzare tutte le nuove modifiche. |
| pageFetchLatency.avg | Timer | Latenza dell'API di recupero dei contenuti (media). |
| pageFetchLatency.max | Timer | Latenza dell'API di recupero dei contenuti (massima). |
| Pagine richieste.Count | Contatore | Numero di invocazioni dell'API di recupero dei contenuti. |
| pageRequestFailed.count | Contatore | Numero di richieste fallite di API di recupero dei contenuti. |
| pageRequestedSuccess.count | Contatore | Numero di richieste riuscite di API per il recupero dei contenuti. |
| searchCallLatency.avg | Timer | Latenza media di latenza delle chiamate dell'API di ricerca. |
| searchCallLatency.max | Timer | Latenza massima delle chiamate API di ricerca |
| searchResultsFound.count | Contatore | Numero di elementi trovati in una determinata chiamata di ricerca. |
| searchRequestsFailed.count | Contatore | Contano gli errori delle chiamate all'API di ricerca. |
| Authfailures.count | Contatore | Numero di errori di autenticazione. |