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á.
Monitorar eventos do CodeArtifact
O CodeArtifact é integrado ao Amazon EventBridge, um serviço que automatiza e responde a eventos, incluindo alterações em um repositório do CodeArtifact. É possível criar regras para eventos e configurar o que acontece quando um evento corresponde a uma regra. Anteriormente, o EventBridge era chamado de CloudWatch Events.
As seguintes ações podem ser acionadas por um evento:
-
Invocar uma função do AWS Lambda.
-
Ativar a máquina de estado do AWS Step Functions.
-
Notificação de um tópico do Amazon SNS ou de uma fila do Amazon SQS.
-
Iniciar um pipeline no AWS CodePipeline.
O CodeArtifact cria um evento quando a versão de um pacote é criada, modificada ou excluída. Veja a seguir alguns exemplos de eventos do CodeArtifact:
-
Publicar uma nova versão de pacote (por exemplo, executando
npm publish). -
Adicionar um novo ativo a uma versão de pacote existente (por exemplo, enviando um novo arquivo JAR para um pacote Maven existente).
-
Copiar uma versão de pacote de um repositório para outro usando
copy-package-versions. Para obter mais informações, consulte Copiar pacotes entre repositórios. -
Excluir versões do pacote usando o
delete-package-versions. Para obter mais informações, consulte Excluir um pacote ou uma versão do pacote. -
Excluir versões de um pacote usando o
delete-package. Um evento será publicado para cada versão do pacote excluído. Para obter mais informações, consulte Excluir um pacote ou uma versão do pacote. -
Manter uma versão de pacote em um repositório downstream quando ela foi obtida de um repositório upstream. Para obter mais informações, consulte Trabalhando com repositórios upstream em CodeArtifact.
-
Ingestão da versão de um pacote de um repositório externo em um repositório do CodeArtifact. Para obter mais informações, consulte Conectar um repositório do CodeArtifact a um repositório público.
Os eventos são entregues tanto para a conta proprietária do domínio quanto para a que administra o repositório. Por exemplo, suponha que essa conta 111111111111 seja proprietária do domínio my_domain. A conta 222222222222 cria um repositório no my_domain chamado repo2. Quando a nova versão de um pacote é publicada no repo2, ambas as contas recebem os eventos do EventBridge. A conta proprietária do domínio (111111111111) recebe eventos para todos os repositórios no domínio. Se uma única conta for proprietária tanto do domínio quanto do repositório dentro dela, somente um único evento será entregue.
Os tópicos a seguir descrevem o formato dos eventos do CodeArtifact. Eles mostram como configurar eventos do CodeArtifact e como usar eventos com outros serviços do AWS. Para obter mais informações, consulte Conceitos básicos do Amazon EventBridge no Guia do usuário do Amazon EventBridge.
Formato e exemplo de evento do CodeArtifact
A seguir são apresentados os campos e as descrições de evento, juntamente com um exemplo de um evento do CodeArtifact.
Formato de evento do CodeArtifact
Todos os eventos do CodeArtifact incluem os seguintes campos.
| Campo do evento | Descrição |
|---|---|
| version | A versão do formato do evento. Atualmente, há apenas uma versão, 0. |
| id | Um identificador exclusivo do evento. |
| tipo de detalhe | O tipo de evento. Determina os campos no objeto detail. Atualmente, o único detail-type compatível é CodeArtifact Package Version State Change. |
| origem | A origem do evento. No caso do CodeArtifact, será aws.codeartifact. |
| conta | O ID da conta AWS que recebeu o evento. |
| horário | O horário exato em que o evento foi acionado. |
| região | A região onde o evento foi acionado. |
| recursos | Uma lista que contém o ARN do pacote que foi alterado. A lista contém uma entrada. Para obter informações sobre o formato do ARN do pacote, consulte Conceder acesso de gravação aos pacotes. |
| domainName | O domínio que contém o repositório contendo o pacote. |
| domainOwner | O ID da conta AWS do proprietário do domínio. |
| repositoryName | O repositório que contém o pacote. |
| repositoryAdministrator | O ID da conta AWS do administrador do repositório. |
| packageFormat | O formato do pacote que acionou o evento. |
| packageNamespace | O namespace do pacote que acionou o evento. |
| packageName | O nome do pacote que acionou o evento. |
| packageVersion | A versão do pacote que acionou o evento. |
| packageVersionState | O estado da versão do pacote quando o evento foi acionado. Os valores possíveis são Unfinished, Published, Unlisted, Archived e Disposed. |
| packageVersionRevision | Um valor que identifica de maneira exclusiva o estado dos ativos e metadados da versão do pacote quando o evento foi acionado. Se a versão do pacote for modificada (por exemplo, com a adição de outro arquivo JAR a um pacote Maven), packageVersionRevision mudará. |
| changes.assetsAdded | O número de ativos adicionados a um pacote que acionou um evento. Exemplos de um ativo são um arquivo JAR do Maven ou wheel do Python. |
| changes.assetsRemoved | O número de ativos removidos de um pacote que acionou um evento. |
| changes.assetsUpdated | O número de ativos modificados no pacote que acionou o evento. |
| changes.metadataUpdated | Um valor booleano definido como true se o evento incluir metadados modificados em nível de pacote. Por exemplo, um evento pode modificar um arquivo pom.xml do Maven. |
| changes.statusChanged | Um valor booleano definido como true se o packageVersionStatus do evento for modificado (por exemplo, se packageVersionStatus mudar de Unfinished paraPublished). |
| operationType | Descreve o tipo de alto nível da alteração da versão do pacote. Os valores possíveis são Created, Updated e Deleted. |
| sequenceNumber | Um número inteiro que especifica um número de evento para um pacote. Cada evento em um pacote o incrementa o sequenceNumber para que os eventos possam ser dispostos de maneira sequencial. Um evento pode incrementar o sequenceNumber em qualquer número inteiro. nota Os eventos do EventBridge podem ser recebidos fora de ordem. O |
| eventDeduplicationId | Um ID usado para diferenciar eventos do EventBridge duplicados. Em casos raros, o EventBridge pode acionar a mesma regra mais de uma vez para um único evento ou horário agendado. Ou pode invocar mais de uma vez o mesmo alvo para uma determinada regra acionada. |
Exemplo de um evento do CodeArtifact
A seguir há um exemplo de um evento do CodeArtifact que pode ser acionado quando um pacote npm é publicado.
{ "version":"0", "id":"73f03fec-a137-971e-6ac6-07c8ffffffff", "detail-type":"CodeArtifact Package Version State Change", "source":"aws.codeartifact", "account":"123456789012", "time":"2019-11-21T23:19:54Z", "region":"us-west-2", "resources":["arn:aws:codeartifact:us-west-2:111122223333:package/my_domain/myrepo/npm//mypackage"], "detail":{ "domainName":"my_domain", "domainOwner":"111122223333", "repositoryName":"myrepo", "repositoryAdministrator":"123456789012", "packageFormat":"npm", "packageNamespace":null, "packageName":"mypackage", "packageVersion":"1.0.0", "packageVersionState":"Published", "packageVersionRevision":"0E5DE26A4CD79FDF3EBC4924FFFFFFFF", "changes":{ "assetsAdded":1, "assetsRemoved":0, "metadataUpdated":true, "assetsUpdated":0, "statusChanged":true }, "operationType":"Created", "sequenceNumber":1, "eventDeduplicationId":"2mEO0A2Ke07rWUTBXk3CAiQhdTXF4N94LNaT/ffffff=" } }