2016-04-25 142 views

回答

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

相關問題