As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Usando um pipeline de OpenSearch ingestão com os serviços da Atlassian
Você pode usar os plug-ins de origem do Atlassian Jira e do Confluence para ingerir dados dos serviços da Atlassian em seu pipeline de ingestão. OpenSearch Essas integrações permitem que você crie uma base de conhecimento pesquisável unificada sincronizando projetos completos do Jira e espaços do Confluence, mantendo a relevância em tempo real por meio do monitoramento contínuo e da sincronização automática das atualizações.
Tópicos
Pré-requisitos
Antes de criar seu pipeline OpenSearch de ingestão, conclua as seguintes etapas:
-
Prepare as credenciais para seu site Jira escolhendo uma das seguintes opções. OpenSearch A ingestão requer apenas
ReadOnly
autorização para o conteúdo.-
Opção 1: chave de API — Faça login na sua conta Atlassian e use as informações no tópico a seguir para gerar sua chave de API:
-
Opção 2: OAuth2 — Faça login na sua conta Atlassian e use as informações em. Conectando um pipeline de OpenSearch ingestão da Amazon ao Atlassian Jira ou ao Confluence usando 2.0 OAuth
-
-
Crie um segredo AWS Secrets Manager para armazenar as credenciais criadas na etapa anterior. Faça as seguintes escolhas ao seguir o procedimento:
-
Em Tipo de segredo, escolha Outro tipo de segredo.
-
Para pares de chave/valor, crie os seguintes pares, dependendo do tipo de autorização selecionado:
Depois de criar o segredo, copie o Amazon Resource Name (ARN) do segredo. Você o incluirá na política de permissões de funções do pipeline.
-
Configurar uma função de pipeline
A função passada no pipeline deve ter a seguinte política anexada para leitura e gravação no segredo criado na seção de pré-requisitos.
A função também deve ter uma política anexada para acessar e gravar no coletor escolhido. Por exemplo, se você escolher OpenSearch como coletor, a política será semelhante à seguinte:
Configuração do pipeline do conector Jira
Você pode usar um blueprint pré-configurado do Atlassian Jira para criar esse pipeline. Para obter mais informações, consulte Trabalhando com plantas.
Substitua os placeholder values
por suas próprias informações.
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 Compactação de solicitações HTTP no Amazon OpenSearch # 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
"
Chave dos atributos na fonte do Jira:
-
hosts: sua nuvem do Jira ou URL local. Geralmente, parece que
https://
.your-domain-name
.atlassian.net/ -
agradecimentos: Para garantir a entrega dos dados até a pia.
-
autenticação: descreve como você deseja que o pipeline acesse sua instância do Jira. Escolha
Basic
ouOAuth2
e especifique os atributos de chave correspondentes que fazem referência às chaves em seu AWS segredo. -
filtro: esta seção ajuda você a selecionar qual parte dos seus dados do Jira deve ser extraída e sincronizada.
-
projeto: liste as chaves do projeto que você deseja sincronizar na
include
seção. Caso contrário, liste os projetos que você deseja excluir naexclude
seção. Forneça somente uma das opções de inclusão ou exclusão a qualquer momento. -
issue_type: tipos de problemas específicos que você deseja sincronizar. Siga o
exclude
padrãoinclude
ou similar que atenda às suas necessidades. Observe que os anexos aparecerão como links âncora para o anexo original, mas o conteúdo do anexo não será extraído. -
status: filtro de status específico que você deseja aplicar para a consulta de extração de dados. Se você especificar
include
, somente tickets com esses status serão sincronizados. Se você especificarexclude
, todos os tíquetes, exceto aqueles com os status excluídos listados, serão sincronizados.
-
Configuração do pipeline do conector Confluence
Você pode usar um blueprint pré-configurado do Atlassian Confluence para criar esse pipeline. Para obter mais informações, consulte Trabalhando com plantas.
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 Compactação de solicitações HTTP no Amazon OpenSearch . # 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
"
Principais atributos na fonte do Confluence:
-
hosts: sua nuvem do Confluence ou URL local. Geralmente, parece que
https://
your-domain-name
.atlassian.net/ -
agradecimentos: Para garantir a entrega dos dados até a pia.
-
autenticação: descreve como você deseja que o pipeline acesse sua instância do Confluence. Escolha
Basic
ouOAuth2
e especifique os atributos de chave correspondentes que fazem referência às chaves em seu AWS segredo. -
filtro: esta seção ajuda você a selecionar qual parte dos dados do Confluence deve ser extraída e sincronizada.
-
espaço: liste as teclas de espaço que você deseja sincronizar na
include
seção. Caso contrário, liste os espaços que você deseja excluir naexclude
seção. Forneça somente uma das opções de inclusão ou exclusão a qualquer momento. -
page_type: tipos de página específicos (como página, postagem de blog ou anexos) que você deseja sincronizar. Siga o
exclude
padrãoinclude
ou similar que atenda às suas necessidades. Observe que os anexos aparecerão como links âncora para o anexo original, mas o conteúdo do anexo não será extraído.
-
Consistência de dados
Com base nos filtros especificados no YAML do pipeline, os projetos (ou espaços) selecionados serão extraídos uma vez e totalmente sincronizados com o coletor de destino. Em seguida, o monitoramento contínuo de alterações capturará as alterações à medida que elas ocorrerem e atualizará os dados no coletor. Uma exceção é que o monitoramento de mudanças sincroniza somente create
update
ações, não delete
ações.
Limitações
-
As ações de exclusão do usuário não serão sincronizadas. Os dados, uma vez gravados no coletor, permanecerão no coletor. As atualizações substituirão o conteúdo existente por novas alterações se o mapeamento de ID for especificado nas configurações do coletor.
-
As instâncias locais que usam versões mais antigas do software Atlassian que não oferecem suporte ao seguinte não APIs são compatíveis com essa fonte:
-
API de pesquisa do Jira versão 3
-
rest/api/3/search
-
rest/api/3/issue
-
-
Confluence
-
wiki/rest/api/content/search
-
wiki/rest/api/content
-
wiki/rest/api/settings/systemInfo
-
-
Métricas CloudWatch para conectores Atlassian
Tipo: métricas do conector Jira
Origem | Métrica | Tipo de métrica |
---|---|---|
acknowledgementSetSuccesses.contar | Contador | Se as confirmações estiverem ativadas, essa métrica fornecerá o número de tickets sincronizados com sucesso. |
acknowledgementSetFailures.contar | Contador | Se as confirmações estiverem ativadas, essa métrica fornecerá o número de tickets que falharam na sincronização. |
Tempo de rastreamento.avg | Timer | O tempo necessário para analisar todas as novas mudanças. |
ticketFetchLatency.avg | Timer | A média de latência da API de busca de tickets. |
ticketFetchLatency.máximo | Timer | A latência máxima da API de busca do ticket. |
Ingressos solicitados. Contagem | Contador | Número de solicitações de busca de tíquetes feitas. |
ticketRequestedFailed.contar | Contador | Falha no número de solicitações de busca de tíquetes. |
ticketRequestedSuccess.contar | Contador | O número de solicitações de busca de tíquetes foi bem-sucedido. |
searchCallLatency.avg | Timer | Média da latência de chamadas da API de pesquisa. |
searchCallLatency.máximo | Timer | Latência máxima de chamada da API de pesquisa. |
searchResultsFound.contar | Contador | Número de itens encontrados em uma determinada chamada de pesquisa. |
searchRequestFailed.contar | Contador | Contagem de falhas nas chamadas da API de pesquisa. |
AuthFailures.count | Contador | Contagem de falhas de autenticação. |
Tipo: métricas do conector Confluence
Origem | Métrica | Tipo de métrica |
---|---|---|
acknowledgementSetSuccesses.contar | Contador | Se as confirmações estiverem ativadas, essa métrica fornecerá o número de páginas sincronizadas com sucesso. |
acknowledgementSetFailures.contar | Contador | Se as confirmações estiverem ativadas, essa métrica fornecerá o número de páginas que falharam na sincronização. |
Tempo de rastreamento.avg | Timer | O tempo necessário para analisar todas as novas mudanças. |
pageFetchLatency.avg | Timer | Latência da API de busca de conteúdo (média). |
pageFetchLatency.máximo | Timer | Latência da API de busca de conteúdo (máxima). |
Número de páginas solicitadas | Contador | Número de invocações da API de busca de conteúdo. |
pageRequestFailed.contar | Contador | Número de solicitações falhadas da API de busca de conteúdo. |
pageRequestedSuccess.contar | Contador | Número de solicitações bem-sucedidas da API de busca de conteúdo. |
searchCallLatency.avg | Timer | Média da latência de chamadas da API de pesquisa. |
searchCallLatency.máximo | Timer | Latência máxima de chamadas da API de pesquisa |
searchResultsFound.contar | Contador | Número de itens encontrados em uma determinada chamada de pesquisa. |
searchRequestsFailed.contar | Contador | Contagem de falhas nas chamadas da API de pesquisa. |
AuthFailures.count | Contador | Contagem de falhas de autenticação. |