Juni 2020 Die Brüder AWS Code werden plötzlich wiedergeboren. Der Name lautet AWS CodeArtifact. Ein privater Repository-Service, mit dem Sie Softwarepakete sicher speichern, veröffentlichen und freigeben können. Es ist in der Region Tokio bereits allgemein verfügbar und mit VPC Endpoint kompatibel.
: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/
Ähnliche Tools und Dienste umfassen JFrog Artifactory und GitHub Package Registry. Ich denke, Azure Artifacts ist berühmt.
Ein Repository-Manager wie AWS CodeArtifact bietet zwei Hauptvorteile.
Erstellen Sie bei der Entwicklung von Software ein Ökosystem wie Paketmanager für verschiedene Sprachen Es ist alltäglich geworden, es zu benutzen.
CodeArtifact kann als Proxy für entsprechende Paketmanager wie maven und npm verwendet werden. Administratoren können den Zugriff auf Pakete steuern und sind für die Verwendung innerhalb der Organisation zugelassen Entwicklern stehen nur die neuesten Pakete zur Verfügung.
Abhängig von den Richtlinien Ihres Unternehmens können Sie möglicherweise nicht frei auf das öffentliche Repository zugreifen. Durch die Verwendung von VPC Endpoint wurde es in CodeArtifact zwischengespeichert, ohne über das Internet zu gehen. Sie können auf das Paket zugreifen. Sie können auch eine Verkürzung der Downloadzeit erwarten.
Ab Juni 2020 werden folgende externe Verbindungen unterstützt. Es scheint das Minimum im Vergleich zu den Dienstleistungen anderer Unternehmen zu sein, aber ich freue mich auf zukünftige Updates.
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 bietet einen zentralen Ort zum Speichern von Paketen, die in Ihrer Organisation erstellt wurden. Weil die gespeicherten Pakete sicher freigegeben und vorhandenen Paketmanagern zur Verfügung gestellt werden können Dies reduziert die Entwicklungszeit.
Sie können mehrere Repositorys in Ihrem Konto erstellen. (Maximal 100) Ein Repository kann Pakete in mehreren unterstützten Sprachen enthalten. Das Repository ist die Einheit des Endpunkts, wenn von jedem Paketmanager aus darauf zugegriffen wird.
CodeArtifact ist ein einzigartiges Konzept. Verwalten Sie jedes Repository in einer einzelnen Domäne.
Jedes Paket wird über ein Repository verwendet, aber die tatsächlichen Daten sind kein Repository Es wird in der Domain gespeichert. Bestimmte Pakete in mehreren Repositorys innerhalb derselben Domäne Selbst wenn Sie es verwenden, wird es unabhängig von der Anzahl der Repositorys nur einmal gespeichert. Mit anderen Worten, Speichergebühren werden nicht dupliziert.
Domains sind auch für Cross-Accounts verfügbar. Erstellen Sie eine gemeinsame Domain für Ihre Organisation Jedes Konto kann ein eigenes Repository verwenden.
Jedes Repository kann als Upstream-Repository auf ein anderes Repository festgelegt werden. Dies macht es zu einem gemeinsamen Repository innerhalb der Organisation, einem Repository für Entwicklungsteams usw. Selbst wenn sie getrennt sind, kann der Client von einem einzelnen Endpunkt aus auf sie zugreifen.
Es kann im bekannten JSON-Format eingestellt werden.
Domänenrichtlinieneinstellungen für Konten in Ihrer Organisation oder für bestimmte IAM-Principals Sie können den Zugriff auf die Domain zulassen.
Wenn Sie eine Ressourcenrichtlinie definieren, gilt dies auch für Benutzer, die auf das Repository zugreifen können, und für das Repository Sie können die Aktionen angeben, die ausgeführt werden können. Infolgedessen wird im Fall des obigen Konfigurationsbeispiels nur die Leseberechtigung innerhalb der Organisation im freigegebenen Repository der Organisation festgelegt. Das Repository des Entwicklungsteams kann so konfiguriert werden, dass nur Entwickler lesen und schreiben können.
Wählen Sie oben in der CodeArtifact-Konsole Repository erstellen aus. Geben Sie den Repository-Namen und die Einstellungen für das öffentliche Upstream-Repository ein Wählen Sie das offizielle Repository aus, das zwischengespeichert werden soll. Wählen Sie dann die Domain aus, in der Sie das Repository registrieren möchten. Wir haben noch keine Domain für dieses Konto erstellt. Geben Sie daher einen Domainnamen an und erstellen Sie einen neuen. Mit zusätzlichen Einstellungen können Sie den KMS-Schlüssel auswählen, der für die Verschlüsselung verwendet werden soll, entweder verwaltetes oder spezifisches CMK. Überprüfen Sie abschließend die Einstellungen und erstellen Sie ein Repository und eine Domäne. Wie Sie dem Paketfluss entnehmen können, im Assistenten zum Erstellen von Repositorys Es stehen nur öffentliche Upstream-Repositorys zur Auswahl. Um ein anderes Repository als Upstream-Repository festzulegen, klicken Sie nach dem Erstellen des Repositorys auf Bearbeiten Muss eingestellt werden.
AWS CLI v2.0.21 oder höher ist erforderlich, um die Verbindungsinformationen des erstellten Repositorys abzurufen. Sie können den spezifischen Verbindungsbefehl für jedes Tool im Repository-Bildschirm der Konsole überprüfen. Im Fall von pip ist dies beispielsweise wie folgt. Die Option --domain-owner ist für das Konto, mit dem die Domain erstellt wurde, optional.
$ aws codeartifact login --tool pip --repository my-repo --domain my-domain --domain-owner 0123456789012
Successfully logged in to codeartifact for pip.
Intern scheint es, dass der Pip-Konfigurationssatz global.index-url automatisch setzt. Sie können die Endpunkte des Repositorys mit den Anmeldeinformationen in der Pip-Konfigurationsliste sehen. Dieser Berechtigungsnachweis läuft nach 12 Stunden ab und muss jedes Mal durchgeführt werden.
Verwenden Sie alternativ den Befehl aws codeartifact get-authorisation-token, um nur das Authentifizierungstoken abzurufen. Sie können den Konfigurationssatz auch manuell festlegen.
Es scheint, dass der Abmeldebefehl nicht vorbereitet ist, um ihn abzubrechen
Es scheint keine andere Wahl zu geben, als pip config unset global.index-url
auszuführen.
Wenn Sie versuchen, die AWS SAM CLI zu installieren, sehen Sie, dass sie von CodeArtifact heruntergeladen wurde.
$ 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)
Sie können auch sehen, dass es im erstellten Repository auf der Konsole registriert ist. Tatsächlich stellt das öffentliche Upstream-Repository pypi-store eine Verbindung zu PyPI her und speichert es zwischen.
Hier finden Sie das Tutorial zum Python Packaging-Benutzerhandbuch Versuchen Sie, ein Beispielprojekt in CodeArtifact hochzuladen.
Klonen Sie 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.
Paket mit dem folgenden Befehl.
$ cd sampleproject
$ python setup.py bdist_wheel
Für Python ist eine Schnur erforderlich, um das Paket hochzuladen. Installieren Sie es daher.
$ pip install -U twine
Legen Sie die Garnanmeldeinformationen mit dem Anmeldebefehl fest. Intern werden die Einstellungen für die CodeArtifact-Verbindung zu ~ / .pypirc hinzugefügt.
$ aws codeartifact login --tool twine --repository my-repo --domain my-domain
Successfully logged in to codeartifact for twine.
Laden Sie mit dem folgenden Befehl auf CodeArtifact hoch.
$ 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
Ich konnte bestätigen, dass es auch auf die Konsole hochgeladen wurde. Sie können ganz einfach Ihr eigenes Paket teilen.
** AWS CodeArtifact-Produktseite ** https://aws.amazon.com/jp/codeartifact/ CodeArtifact User Guide https://docs.aws.amazon.com/codeartifact/latest/ug/welcome.html ** Veröffentlichen / Hochladen einer in Python erstellten Bibliothek auf PyPI ** https://qiita.com/icoxfog417/items/edba14600323df6bf5e0
das ist alles. Ich bin froh, wenn Sie es als Referenz verwenden können.
Recommended Posts