Juin 2020 Les frères AWS Code renaissent soudainement. Son nom est AWS CodeArtifact. Un service de référentiel privé qui vous permet de stocker, publier et partager en toute sécurité des packages logiciels. Il est déjà généralement disponible dans la région de Tokyo et est compatible avec VPC Endpoint.
:rocket: Introducing AWS CodeArtifact: A fully managed software artifact repository service https://aws.amazon.com/jp/about-aws/whats-new/2020/06/introducing-aws-codeartifact-a-fully-managed-software-artifact-repository-service/
Des outils et services similaires incluent JFrog Artifactory et GitHub Package Registry, Je pense qu'Azure Artifacts est célèbre.
Il existe deux principaux avantages d'un gestionnaire de référentiels comme AWS CodeArtifact.
Lors du développement de logiciels, créez un écosystème tel que des gestionnaires de packages pour différentes langues Il est devenu courant de l'utiliser.
CodeArtifact peut être utilisé comme proxy pour les gestionnaires de packages correspondants tels que maven et npm. Les administrateurs peuvent contrôler l'accès aux packages et sont approuvés pour une utilisation au sein de l'organisation Seuls les derniers packages seront disponibles pour les développeurs.
En outre, selon les politiques de votre organisation, vous ne pourrez peut-être pas accéder librement au référentiel public. En utilisant VPC Endpoint, il a été mis en cache dans CodeArtifact sans passer par Internet. Vous pouvez accéder au package. Vous pouvez également vous attendre à une réduction du temps de téléchargement.
Depuis juin 2020, les connexions externes suivantes sont prises en charge. Cela semble être le minimum par rapport aux services d'autres entreprises, mais j'attends avec impatience les futures mises à jour.
Type | Description |
---|---|
npm | npm public registry |
Python | Python Package Index |
Maven | Maven Central |
Maven | Google Android repository |
Maven | Gradle plugins repository |
Maven | CommonsWare Android repository |
CodeArtifact fournit un emplacement central pour stocker les packages créés au sein de votre organisation. Parce que les packages stockés peuvent être partagés en toute sécurité et mis à la disposition des gestionnaires de packages existants Cela réduira le temps de développement.
Vous pouvez créer plusieurs référentiels dans votre compte. (Maximum 100) Un référentiel peut contenir des packages dans plusieurs langues prises en charge. Le référentiel est l'unité du point de terminaison lorsqu'il est accédé à partir de chaque gestionnaire de packages.
CodeArtifact est un concept unique. Gérez chaque référentiel dans un seul domaine.
Chaque package est utilisé via un référentiel, mais les données réelles ne sont pas un référentiel Il est enregistré dans le domaine. Packages spécifiques dans plusieurs référentiels au sein du même domaine Même si vous l'utilisez, il ne sera enregistré qu'une seule fois quel que soit le nombre de référentiels. En d'autres termes, les frais de stockage ne seront pas dupliqués.
Les domaines sont également disponibles pour les comptes croisés. Créez un domaine commun pour votre organisation Chaque compte peut utiliser son propre référentiel.
Chaque référentiel peut être défini sur un autre référentiel en tant que référentiel en amont. Cela en fait un référentiel commun au sein de l'organisation, un référentiel pour les équipes de développement, etc. Même s'ils sont séparés, le client peut y accéder à partir d'un seul point de terminaison.
Il peut être défini dans le format json familier.
Paramètres de stratégie de domaine pour les comptes au sein de votre organisation ou des principaux IAM spécifiques Vous pouvez autoriser l'accès au domaine.
De même, si vous définissez une politique de ressources, pour les utilisateurs qui peuvent accéder au référentiel et pour le référentiel Vous pouvez spécifier les actions qui peuvent être effectuées. Par conséquent, dans le cas de l'exemple de configuration ci-dessus, seule l'autorisation de lecture au sein de l'organisation est définie dans le référentiel partagé de l'organisation. Le référentiel de l'équipe de développement peut être configuré pour autoriser uniquement les membres de développement à lire et écrire.
Sélectionnez Créer un référentiel en haut de la console CodeArtifact. Entrez le nom du référentiel et dans les paramètres du référentiel public en amont Sélectionnez le référentiel officiel à mettre en cache. Sélectionnez ensuite le domaine dans lequel vous souhaitez enregistrer le référentiel. Nous n'avons pas encore créé de domaine pour ce compte, alors spécifiez un nom de domaine et créez-en un nouveau. Des paramètres supplémentaires vous permettent de choisir la clé KMS à utiliser pour le chiffrement, CMK gérée ou spécifique. Enfin, vérifiez les paramètres et créez un référentiel et un domaine. Comme vous pouvez le voir dans le flux de packages, dans l'assistant de création de référentiel Seuls les référentiels publics en amont sont disponibles pour la sélection. Pour définir un autre référentiel comme référentiel en amont, cliquez sur Modifier après avoir créé le référentiel Doit être réglé.
AWS CLI v2.0.21 ou version ultérieure est requise pour obtenir les informations de connexion du référentiel créé. Vous pouvez vérifier la commande de connexion spécifique pour chaque outil à partir de l'écran du référentiel de la console. Par exemple, dans le cas de pip, c'est comme suit. L'option --domain-owner est facultative pour le compte qui a créé le domaine.
$ aws codeartifact login --tool pip --repository my-repo --domain my-domain --domain-owner 0123456789012
Successfully logged in to codeartifact for pip.
En interne, il semble que l'ensemble de configuration de pip définit automatiquement global.index-url. Vous pouvez voir les points de terminaison du référentiel avec les informations d'identification dans la liste de configuration pip. Ces informations d'identification expirent après 12 heures et doivent être effectuées à chaque fois.
Vous pouvez également utiliser la commande aws codeartifact get-authorisation-token pour obtenir uniquement le jeton d'authentification. Vous pouvez également pipette manuellement l'ensemble de configuration.
Il semble que la commande de déconnexion n'est pas préparée, donc pour l'annuler
Il semble qu'il n'y ait pas d'autre choix que d'exécuter pip config unset global.index-url
.
Si vous essayez d'installer l'AWS SAM CLI, vous verrez qu'elle est téléchargée à partir de CodeArtifact.
$ pip install -U aws-sam-cli
Collecting aws-sam-cli
Downloading https://my-domain-123456789012.d.codeartifact.ap-northeast-1.amazonaws.com/pypi/my-repo/simple/aws-sam-cli/0.52.0/aws_sam_cli-0.52.0-py3-none-any.whl (443kB)
Vous pouvez également voir qu'il est enregistré dans le référentiel créé sur la console. En fait, le référentiel public en amont, pypi-store, se connecte et met en cache PyPI.
Voici le didacticiel du guide de l'utilisateur de Python Packaging Essayez de télécharger un exemple de projet dans CodeArtifact.
Clonez https://github.com/pypa/sampleproject.
$ git clone https://github.com/pypa/sampleproject.git
Cloning into 'sampleproject'...
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (21/21), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 441 (delta 7), reused 6 (delta 1), pack-reused 420
Receiving objects: 100% (441/441), 116.64 KiB | 365.00 KiB/s, done.
Resolving deltas: 100% (216/216), done.
Package avec la commande suivante.
$ cd sampleproject
$ python setup.py bdist_wheel
Pour Python, de la ficelle est nécessaire pour télécharger le package, alors installez-le.
$ pip install -U twine
Définissez les informations d'identification de la ficelle avec la commande de connexion. En interne, les paramètres de connexion CodeArtifact sont ajoutés à ~ / .pypirc.
$ aws codeartifact login --tool twine --repository my-repo --domain my-domain
Successfully logged in to codeartifact for twine.
Téléchargez sur CodeArtifact avec la commande suivante.
$ twine upload -r codeartifact dist/*
Uploading distributions to https://my-domain-123456789012.d.codeartifact.ap-northeast-1.amazonaws.com/pypi/my-repo/
Uploading sampleproject-1.3.1-py3-none-any.whl
J'ai pu confirmer qu'il a également été téléchargé sur la console. Vous pouvez facilement partager votre propre package.
** Page produit AWS CodeArtifact ** https://aws.amazon.com/jp/codeartifact/ CodeArtifact User Guide https://docs.aws.amazon.com/codeartifact/latest/ug/welcome.html ** Publier / télécharger une bibliothèque créée en Python vers PyPI ** https://qiita.com/icoxfog417/items/edba14600323df6bf5e0
c'est tout. Je suis heureux que vous puissiez l'utiliser comme référence.