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'
ReadOnly
autorizzazione 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 AWS Secrets Manager 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.
-
Configura un ruolo della pipeline
Il ruolo passato nella pipeline deve avere la seguente politica di lettura e scrittura allegata al 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
Basic
o specificaOAuth2
gli 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
include
sezione. Altrimenti, elenca i progetti che desideri escludere nellaexclude
sezione. Fornisci solo una delle opzioni di inclusione o esclusione alla volta. -
issue_type: tipi di problemi specifici che desideri sincronizzare. Segui lo
exclude
schema simileinclude
o 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
Basic
oOAuth2
e 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.
include
Altrimenti, elenca gli spazi che desideri escludere nellaexclude
sezione. 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
exclude
schema simileinclude
o 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 non riuscite dell'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. |