Ich verwende S3, um eine statische Website zu hosten, und möchte das Ergebnis einer TeamCity-Version in den S3-Bucket hochladen können.Wie kann ich den Artefaktordner von TeamCity in einen AWS S3-Bucket hochladen?
Antwort
Es gibt Drittanbieter-Plugin: https://github.com/guardian/teamcity-s3-plugin
Auch würde ich für diese Anfrage in Teamcity Tracker beobachten empfehlen, da irgendwann kann es offizielle Unterstützung sein: https://youtrack.jetbrains.com/issue/TW-21560
Nachdem eine Zeit lang daran gearbeitet, gefunden eine Lösung.
Der TeamCity-Agent wird in einer EC2-Instanz gehostet, die mit einer IAM-Rolle in AWS gestartet wurde.
Richten Sie eine Deployer-IAM-Rolle mit Zugriff auf den S3-Bucket ein und lassen Sie die TeamCity IAM-Rolle dies übernehmen.
Verwenden Sie anschließend AWS CLI-Befehle, um Inhalte in den Bucket hochzuladen.
Beispiel (Powershell)
STEP 1. Antrag temporäre Anmeldeinformationen für das Konto
#-----------------------------
# Get parameters
#-----------------------------
$RoleArn = "%param_deployer_arn%"
$ExternalId = "%param_assume_role_external_id%"
$Region = "%param_region%"
$SessionName = "%param_session_name%"
#-----------------------------
# AWS Authentication - Assume Role
#-----------------------------
$Response = (Use-STSRole -Region $Region -RoleArn $RoleArn -ExternalId $ExternalId -RoleSessionName $SessionName).Credentials
$SecretAccessKey = $Response.SecretAccessKey
$SessionToken = $Response.SessionToken
$AccessKeyId = $Response.AccessKeyId
#-----------------------------
# Set environment variables
#-----------------------------
"##teamcity[setParameter name='env.AWS_SECRET_ACCESS_KEY' value='$SecretAccessKey']"
"##teamcity[setParameter name='env.AWS_SECURITY_TOKEN' value='$SessionToken']"
"##teamcity[setParameter name='env.AWS_ACCESS_KEY_ID' value='$AccessKeyId']"
SCHRITT 2. (Access AWS Session-Token und Zugriffsschlüssel in Umgebungsvariablen gespeichert ist)
WICHTIG: muss in verschiedenen Schritten in TeamCity durchgeführt werden)
#-----------------------------
# List S3 bucket content
#-----------------------------
aws s3 ls s3://%S3Bucket%
können Sie bitte zeigen, wie Sie den CLI Schritt auf TeamCity gemacht haben? –
Ich habe gerade meinen ursprünglichen Beitrag bearbeitet und ein Beispiel hinzugefügt. – MaRoBet
- 1. Wie kann ich Artefakte von TeamCity ziehen?
- 2. Wie kann ich Teamcity Artefakte Datei in diawi (https://www.diawi.com/)
- 3. Benutzerdefinierte Vorlage in AWS hochladen
- 4. TeamCity - Wie kann ich einen VCS Root kopieren?
- 5. AmazonS3Client.listObjects() Problem mit großen s3bucket
- 6. Kann 'Hochladen von Dateien nach AWS durch PHP-Datei-Upload
- 7. Wie kann ich den vollständigen Dateipfad in C# 3.0 hochladen?
- 8. AWS SDK S3 Hochladen von Anmeldeinformationen
- 9. Wie kann ich CertificateError von AWS-S3 in Django lösen?
- 10. Wie kann ich einen Build in meinem öffentlichen NuGet-Feed von TeamCity anzeigen lassen?
- 11. Kann Bilder nicht in Nodejs mit aws-sdk hochladen
- 12. Video von Android auf AWS S3 hochladen
- 13. Kann ich meinen Code von github in mein AWS-Konto hochladen?
- 14. Datei kann nicht von aws
- 15. Wie kann ich meine Testsuites in TeamCity korrekt parallelisieren?
- 16. Wie kann ich .NET-Ablaufverfolgungsprotokolle in TeamCity anzeigen?
- 17. Wie kann ich einen OutputStream implementieren, den ich zurückspulen kann?
- 18. TeamCity: Wie baue ich einen Build mit zwei VCS-Wurzeln
- 19. Einen TeamCity Build Agent umbenennen
- 20. Datei hochladen zu AWS .Error Wenn AWS Mit
- 21. Wie lade ich Module in AWS Lambda?
- 22. Wie kann ich große Dateien hochladen
- 23. Hochladen von Dateien in AWS S3 mit reinem Ruby
- 24. Wie kann ich die Artefakte von Teamcity auf einen anderen Server kopieren?
- 25. Verwenden von MBUnit in TeamCity
- 26. Wie kann ich mit den SDKs von AWS Java den CloudFormation-Stack der aktuellen Instanz beenden?
- 27. Ich kann nicht auf TeamCity localhost Seite
- 28. aws cli: Wie kann ich Listenwerte abfragen?
- 29. Kann ich eine TeamCity-Erstellung von meinem msbuild-Skript abbrechen?
- 30. Wie kann ich die Benutzeridentität ändern, die einen Build-Agent in TeamCity ausführt?
Als Ergebnis des verlinkten Problems gibt es auch ein offiziell entwickeltes Plugin von Jetbrains https://github.com/JetBrains/teamcity-s3-artifact-storage-plugin. – sthzg