Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwenden einer OpenSearch Ingestion-Pipeline mit Atlassian Services
Du kannst die Quell-Plugins von Atlassian Jira und Confluence verwenden, um Daten aus Atlassian-Services in deine Ingestion-Pipeline aufzunehmen. OpenSearch Diese Integrationen ermöglichen es dir, eine einheitliche, durchsuchbare Wissensdatenbank zu erstellen, indem du komplette Jira-Projekte und Confluence-Bereiche synchronisierst und gleichzeitig die Relevanz in Echtzeit durch kontinuierliche Überwachung und automatische Synchronisation von Updates aufrechterhältst.
Themen
Voraussetzungen
Bevor du deine OpenSearch Ingestion-Pipeline erstellst, führe die folgenden Schritte durch:
-
Bereiten Sie die Anmeldeinformationen für Ihre Jira-Site vor, indem Sie eine der folgenden Optionen wählen. OpenSearch Für die Aufnahme ist nur die
ReadOnly
Autorisierung des Inhalts erforderlich.-
Option 1: API-Schlüssel — Melde dich bei deinem Atlassian-Konto an und verwende die Informationen im folgenden Thema, um deinen API-Schlüssel zu generieren:
-
Option 2: OAuth2 — Melde dich bei deinem Atlassian-Konto an und verwende die Informationen in. Eine Amazon OpenSearch Ingestion-Pipeline mithilfe von 2.0 mit Atlassian Jira oder Confluence verbinden OAuth
-
-
Erstelle ein geheimes Konto AWS Secrets Manager, um die im vorherigen Schritt erstellten Anmeldedaten zu speichern. Treffen Sie bei der Ausführung des Verfahrens die folgenden Optionen:
-
Als Secret-Typ wählen Sie Anderer Secret-Typ aus.
-
Erstellen Sie für Schlüssel/Wert-Paare je nach ausgewähltem Autorisierungstyp die folgenden Paare:
Nachdem Sie das Secret erstellt haben, kopieren Sie den Amazon-Ressourcennamen (ARN) des Secrets. Sie werden ihn in die Richtlinie für Berechtigungen für Pipeline-Rollen aufnehmen.
-
Konfigurieren Sie eine Pipeline-Rolle
Der Rolle, die in der Pipeline übergeben wurde, muss die folgende Richtlinie zum Lesen und Schreiben an den im Abschnitt Voraussetzungen erstellten geheimen Schlüssel angehängt sein.
Der Rolle sollte außerdem eine Richtlinie für den Zugriff und das Schreiben auf die von Ihnen gewählte Senke zugewiesen sein. Wenn Sie beispielsweise OpenSearch als Datenspeicher wählen, sieht die Richtlinie etwa wie folgt aus:
Konfiguration der Jira-Connector-Pipeline
Du kannst einen vorkonfigurierten Atlassian Jira-Blueprint verwenden, um diese Pipeline zu erstellen. Weitere Informationen finden Sie unter Mit Blueprints arbeiten.
Ersetzen Sie placeholder values
durch Ihre Informationen.
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 Komprimieren von HTTP-Anforderungen 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
"
Schlüssel zu den Attributen in der Jira-Quelle:
-
hosts: Ihre Jira-Cloud- oder On-Premises-URL. Im Allgemeinen sieht es so aus.
https://
your-domain-name
.atlassian.net/ -
Bestätigungen: Um die Lieferung von Daten bis zur Senke zu garantieren.
-
Authentifizierung: Beschreibt, wie die Pipeline auf Ihre Jira-Instanz zugreifen soll. Wählen Sie
Basic
oderOAuth2
und geben Sie die entsprechenden Schlüsselattribute an, die auf die Schlüssel in Ihrem AWS Geheimnis verweisen. -
Filter: In diesem Abschnitt können Sie auswählen, welcher Teil Ihrer Jira-Daten extrahiert und synchronisiert werden soll.
-
Projekt: Listet die Projektschlüssel, die Sie synchronisieren möchten, in dem
include
Abschnitt auf. Andernfalls listen Sie die Projekte, die Sie ausschließen möchten, in demexclude
Abschnitt auf. Geben Sie jeweils nur eine der Optionen zum Einschließen oder Ausschließen an. -
issue_type: Bestimmte Problemtypen, die Sie synchronisieren möchten. Folgen Sie einem ähnlichen
exclude
Musterinclude
oder einem Muster, das Ihren Bedürfnissen entspricht. Beachten Sie, dass Anlagen als Ankerlinks zum ursprünglichen Anhang angezeigt werden, der Inhalt des Anhangs jedoch nicht extrahiert wird. -
Status: Spezifischer Statusfilter, den Sie für die Datenextraktionsabfrage anwenden möchten. Wenn Sie angeben
include
, werden nur Tickets mit diesem Status synchronisiert. Wenn Sie dies angebenexclude
, werden alle Tickets mit Ausnahme der Tickets mit dem angegebenen Status „Ausgeschlossen“ synchronisiert.
-
Konfiguration der Confluence-Connector-Pipeline
Du kannst einen vorkonfigurierten Atlassian Confluence-Blueprint verwenden, um diese Pipeline zu erstellen. Weitere Informationen finden Sie unter Mit Blueprints arbeiten.
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 Komprimieren von HTTP-Anforderungen 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
"
Die wichtigsten Attribute in der Confluence-Quelle:
-
hosts: Ihre Confluence-Cloud- oder On-Premises-URL. Im Allgemeinen sieht es so aus
https://
your-domain-name
.atlassian.net/ -
Bestätigungen: Um die Lieferung von Daten bis zur Senke zu garantieren.
-
Authentifizierung: Beschreibt, wie die Pipeline auf Ihre Confluence-Instanz zugreifen soll. Wählen Sie
Basic
oderOAuth2
und geben Sie die entsprechenden Schlüsselattribute an, die auf die Schlüssel in Ihrem Secret verweisen. AWS -
Filter: In diesem Abschnitt können Sie auswählen, welcher Teil Ihrer Confluence-Daten extrahiert und synchronisiert werden soll.
-
Leertaste: Listet in dem Abschnitt die Leertaste auf, die
include
Sie synchronisieren möchten. Andernfalls listen Sie die Leerzeichen, die Sie ausschließen möchten, unter demexclude
Abschnitt auf. Geben Sie jeweils nur eine der Optionen zum Einschließen oder Ausschließen an. -
page_type: Bestimmte Seitentypen (wie Seite, Blogpost oder Anlagen), die du synchronisieren möchtest. Folgen Sie dem ähnlichen
exclude
Musterinclude
oder dem Muster, das Ihren Bedürfnissen entspricht. Beachten Sie, dass Anlagen als Ankerlinks zum ursprünglichen Anhang angezeigt werden, der Inhalt des Anhangs jedoch nicht extrahiert wird.
-
Datenkonsistenz
Basierend auf den in der Pipeline-YAML-Pipeline angegebenen Filtern werden ausgewählte Projekte (oder Bereiche) einmal extrahiert und vollständig mit der Zielsenke synchronisiert. Anschließend erfasst die kontinuierliche Änderungsüberwachung die Änderungen, sobald sie auftreten, und aktualisiert die Daten in der Senke. Eine Ausnahme besteht darin, dass bei der Änderungsüberwachung nur update
Aktionen create
und keine delete
Aktionen synchronisiert werden.
Einschränkungen
-
Aktionen zum Löschen von Benutzern werden nicht synchronisiert. Daten, die einmal in der Senke aufgezeichnet wurden, verbleiben in der Senke. Aktualisierungen überschreiben den vorhandenen Inhalt mit neuen Änderungen, wenn die ID-Zuordnung in den Senkeneinstellungen angegeben ist.
-
Lokale Instanzen, die ältere Versionen der Atlassian-Software verwenden und Folgendes nicht unterstützen, APIs sind mit dieser Quelle nicht kompatibel:
-
Jira Search API, 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
-
-
Metriken CloudWatch für Atlassian-Konnektoren
Typ: Metriken für den Jira-Konnektor
Quelle | Metrik | Metrik: Typ |
---|---|---|
acknowledgementSetSuccesses.count | Zähler | Wenn Bestätigungen aktiviert sind, gibt diese Metrik die Anzahl der erfolgreich synchronisierten Tickets an. |
acknowledgementSetFailures.count | Zähler | Wenn Bestätigungen aktiviert sind, gibt diese Metrik die Anzahl der Tickets an, die nicht synchronisiert werden konnten. |
CrawlingTime.avg | Timer | Die Zeit, die benötigt wurde, um alle neuen Änderungen zu durchforsten. |
ticketFetchLatency.avg | Timer | Die durchschnittliche Latenz der API zum Abrufen von Tickets. |
ticketFetchLatency.max | Timer | Die maximale Latenz der API zum Abrufen von Tickets. |
Anzahl der angeforderten Tickets | Zähler | Anzahl der gestellten Anfragen zum Abrufen von Tickets. |
ticketRequestedFailed. Anzahl | Zähler | Anzahl der Anfragen zum Abrufen von Tickets ist fehlgeschlagen. |
ticketRequestedSuccess.count | Zähler | Anzahl der erfolgreichen Anfragen zum Abrufen von Tickets. |
searchCallLatency.avg | Timer | Durchschnittliche Latenz bei Aufrufen der Such-API. |
searchCallLatency.max | Timer | Maximale Latenz bei Aufrufen der Such-API. |
searchResultsFound. Anzahl | Zähler | Anzahl der Artikel, die bei einem bestimmten Suchaufruf gefunden wurden. |
searchRequestFailed. Anzahl | Zähler | Anzahl fehlgeschlagener Such-API-Aufrufe. |
authFailures.Count | Zähler | Anzahl der Authentifizierungsfehler. |
Typ: Confluence-Connector-Metriken
Quelle | Metrik | Metrik: Typ |
---|---|---|
acknowledgementSetSuccesses.count | Zähler | Wenn Bestätigungen aktiviert sind, gibt diese Metrik die Anzahl der erfolgreich synchronisierten Seiten an. |
acknowledgementSetFailures.count | Zähler | Wenn Bestätigungen aktiviert sind, gibt diese Metrik die Anzahl der Seiten an, die nicht synchronisiert werden konnten. |
CrawlingTime.avg | Timer | Die Zeit, die benötigt wurde, um alle neuen Änderungen zu durchforsten. |
pageFetchLatency.avg | Timer | API-Latenz beim Abrufen von Inhalten (durchschnittlich). |
pageFetchLatency.max | Timer | API-Latenz beim Abrufen von Inhalten (maximal). |
Anzahl der angeforderten Seiten | Zähler | Anzahl der Aufrufe der API zum Abrufen von Inhalten. |
pageRequestFailed. Anzahl | Zähler | Anzahl der fehlgeschlagenen Anfragen der API zum Abrufen von Inhalten. |
pageRequestedSuccess.count | Zähler | Anzahl erfolgreicher Anfragen der API zum Abrufen von Inhalten. |
searchCallLatency.avg | Timer | Durchschnittliche Latenz bei Aufrufen der Such-API. |
searchCallLatency.max | Timer | Max. Latenz bei Aufrufen der Such-API |
searchResultsFound. Anzahl | Zähler | Anzahl der Artikel, die bei einem bestimmten Suchaufruf gefunden wurden. |
searchRequestsFailed. Anzahl | Zähler | Anzahl fehlgeschlagener Such-API-Aufrufe. |
authFailures.Count | Zähler | Anzahl der Authentifizierungsfehler. |