Conceitos do Serviço Artifact Registry
Verifique conceitos e termos relacionados ao serviço Artifact Registry.
Artefato é um pacote de software, uma biblioteca, um arquivo zip ou qualquer outro tipo de arquivo usado para implantar aplicativos. Como exemplos, temos as bibliotecas Python ou Maven. Os artefatos são agrupados em repositórios, que são coleções de artefatos relacionados. Por exemplo, você pode agrupar diversas versões de um artefato Maven em um repositório Maven ou fazer upload das bibliotecas Python para um repositório Python.
Nomes de Repositório e de Artefato no Serviço Artifact Registry
Ao criar um repositório no qual agrupar artefatos semelhantes, você dá a ele um nome de repositório <repo-name>. O nome deve começar com letra ou sublinhado, seguido de letras, números, traços ou sublinhados. O tamanho pode ser de 1 a 255 caracteres. Evite digitar informações confidenciais.
Exemplo: web-app-repo
Se você deixar o nome em branco, o sistema vai gerar automaticamente um nome que poderá ser alterado posteriormente. Um nome gerado automaticamente tem este padrão: artifactrepository<timestamp>
Exemplo: artifactrepository20210423180901
Ao fazer upload de um artefato para um repositório, você especifica um caminho e uma versão para ele. Com base em sua entrada, um nome de artefato é designado ao artefato no seguinte formato:
<artifact-path>:<version>
Exemplo: project01/my-web-app/artifact-abc:1.0.0
- O artifact path <artifact-path> é definido pelo usuário e descreve a localização do artefato no repositório. As barras não criam uma estrutura de diretório, mas você pode usar barras para organizar o repositório. Exemplo: project01/my-web-app/artifact-abc 
- A versão <version> é a versão do artefato. Por causa de atualizações incrementais nos artefatos, você pode designar versões a eles. Dessa forma, você pode associar builds às versões do artefato e fazer rollback para as versões anteriores. Exemplos: 1.1.0 ou 1.2-beta-2 
Um nome de artefato é truncado para um tamanho máximo de 255.
Artefatos Imutáveis no Artifact Registry
Ao criar um repositório, você pode designá-lo como imutável, o que significa que os artefatos transferidos por upload para ele se tornam imutáveis. Esses artefatos são usados como estão e não podem ser substituídos. Os repositórios imutáveis garantem a integridade dos artefatos. Veja a seguir alguns casos de uso comuns para artefatos imutáveis:
- Fazendo rollback de uma implantação: Para um rollback, use os arquivos exatos da versão de trabalho anterior de uma implantação. Os artefatos imutáveis garantem que ninguém tenha alterado a última versão de trabalho após o upload dos artefatos para o repositório.
- Código de contribuição: Em um projeto de implantação, para garantir que a alteração de código de um desenvolvedor não afete outros, a melhor prática é tornar todos os artefatos imutáveis. Por exemplo, se houver uma imagem de coelho em website-image.png, ninguém poderá substituí-la pela imagem de uma raposa. A substituição de uma imagem não quebra o código, mas altera o resultado. Em vez de substituir um artefato imutável, você faz upload de um novo artefato.
A exclusão de um artefato e o uso do mesmo nome do artefato para fazer upload de um novo artefato é o mesmo que substituir o conteúdo desse artefato.
Um artefato imutável pode ser excluído, mas não pode ser substituído. Se você excluir um artefato imutável, não poderá designar seu nome a outro artefato. Portanto, você não pode fazer upload de um novo artefato e designá-lo ao caminho e à versão do artefato excluído. No entanto, você pode dar a ele o mesmo caminho com uma nova versão.
Se um repositório não for imutável, os artefatos nele poderão ser substituídos. Por exemplo, você pode usar snapshots mutáveis de repositórios imutáveis para fins de teste.
Estados do Artefato no Serviço Artifact Registry
Você pode filtrar o estado dos artefatos de um repositório. Os estados possíveis são:
- AVAILABLE
- DELETED
Por exemplo, antes de nomear um artefato, você pode filtrar artefatos com um estado DELETED. Dessa forma, você pode garantir que, ao fazer upload de um novo artefato, não usará o nome de um artefato excluído.
Quando você faz upload de um artefato para um repositório, o serviço Artifact Registry calcula a compilação SHA256 do artefato e o adiciona às propriedades do artefato. A compilação SHA256 é um Algoritmo de Hash Seguro de 256 bits.
Identificando Artefatos com Hash Seguro no Artifact Registry
Ao fazer rollback ou usar um artefato no código, compare a compilação SHA256 dele com a compilação SHA256 do artefato no repositório. Se os artefatos tiverem compilações SHA256 distintas, o conteúdo deles será diferente.