我使用S3来托管一个静态网站,并希望能够将TeamCity构建的结果上传到S3存储桶中。如何将TeamCity的工件文件夹上传到AWS S3存储桶?
4
A
回答
3
有第三方插件:https://github.com/guardian/teamcity-s3-plugin
此外,我会建议看在TeamCity的跟踪这个请求作为在某些时候可以有官方的支持:https://youtrack.jetbrains.com/issue/TW-21560
3
这方面的工作了一段时间后,发现一个办法。
将TeamCity代理托管在使用AWS中的IAM角色启动的EC2实例中。
设置部署者IAM角色可以访问S3存储桶并允许TeamCity IAM角色承担它。
然后使用AWS CLI命令将内容上传到存储桶。
实施例(Powershell的)
STEP 1.请求帐户临时凭证
#-----------------------------
# 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']"
步骤2.
(使用存储在环境变量会话令牌和访问密钥的访问AWS)重要提示:需要在TeamCity的不同步骤中完成)
#-----------------------------
# List S3 bucket content
#-----------------------------
aws s3 ls s3://%S3Bucket%
+1
您能否请您说明您是如何在TeamCity上执行CLI步骤的? –
+0
刚编辑我原来的帖子,并添加了一个例子。 – MaRoBet
相关问题
- 1. 无法使用CORS将文件上传到AWS S3存储桶
- 2. 上传到AWS S3存储桶时更改文件名
- 3. 用于PHP的AWS S3 SDK,上传到存储桶中的文件夹
- 4. 使用Filepicker.io将文件上传到S3存储桶中的文件夹
- 5. 使用ASP.NET SDK将文件上传到S3存储桶的文件夹
- 6. PHP如何在aws s3存储桶中创建文件夹?
- 7. 如何将图片上传到AWS s3存储桶?
- 8. 使用Aws Lambda将图像上传到AWS S3存储桶
- 9. 文件AWS S3存储桶自动
- 10. Parse-服务器将Heroku上托管的文件传输到AWS S3存储桶
- 11. Windows中的AWS Cli不会将文件上传到s3存储桶
- 12. 上传到S3存储桶
- 13. AWS S3 PHP可以直接将文件上传到存储桶中的文件夹
- 14. 无法使用aws-java-sdk将文件上传到S3存储桶
- 15. 使用php将文件上传到aws s3存储桶时发生错误
- 16. 使用PHP SDK将外部文件上传到AWS S3存储桶
- 17. 如何使用django-storage将AWS S3存储桶中的文件夹?
- 18. 如何将图像直接存储到AWS S3存储桶,使用fckeditor上传?
- 19. 在AWS S3存储桶中重命名文件夹的成本
- 20. 无法将图像上传到AWS S3中的存储桶中
- 21. 无法将文件上传到S3存储桶
- 22. 将文件从jenkins上传到S3存储桶
- 23. NodeJS如何从aws s3存储桶下载文件到磁盘?
- 24. 如何将文件/目录上传到存储桶中的文件夹?
- 25. 如何将AMI文件存储到S3存储桶?
- 26. Rails回形针上传到S3会返回存储桶URL,但存储桶上不存在文件夹
- 27. 如何从EC2实例导航到S3存储桶文件夹?
- 28. AWS Lambda:如何提取S3存储桶中的tgz文件并将其放入另一个S3存储桶中
- 29. 如何上传使用JavaScript SDK在AWS S3存储桶多文件浏览器
- 30. 如何使用boto将文件上传到S3存储桶中的目录
作为链接问题的结果,还有一个由Jetbrains官方开发的插件https://github.com/JetBrains/teamcity-s3-artifact-storage-plugin。 – sthzg