2017-05-26 48 views
4

如何將工件作爲aws code build默認公開的一部分上傳到s3?我正在試驗構建自動化。目前建設成功;但是,創建的工件不公開,因此我無法共享該鏈接(作爲郵件的一部分)。默認情況下,服務器端加密設置爲Using AWS KMS master key: aws/s3 (default).嘗試從aws代碼構建配置的advanced settings部分中刪除encryption key時,它發出錯誤。我打算運行一個aws lambda函數,它會在構建結束時發送帶有工件鏈接的郵件,作爲aws代碼管道的一部分。從AWS代碼構建公共S3工件

編輯: 我嘗試添加下面的權限,但它並沒有幫助:

{ 
    "Version":"2012-10-17", 
    "Statement":[ 
    { 
    "Sid":"AddPerm", 
    "Effect":"Allow", 
    "Principal": "*", 
    "Action":["s3:GetObject"], 
    "Resource":["arn:aws:s3:::examplebucket/*"] 
    } 
    ] 
} 

提到here

從S3如果我手動去選擇none作爲加密,該鏈接確實可以下載。然而,我需要一種編程方式來做到這一點,因爲我試圖將整個過程自動化爲構建自動化的一部分。到目前爲止,我還無法通過boto3來實現。

在此先感謝!

+1

也許您可以使用AWS Lambda,當您的構建工件上傳到特定的S3存儲桶時觸發--Lambda將使用S3 API修改S3對象權限。或者您可以將AWS CodeBuild配置爲通過SNS發送構建通知,並通過修改構建工件權限來響應該通知。 – jarmod

+0

謝謝!我會嘗試。 – ranjjose

+1

您也可以研究應用S3存儲桶政策,使存儲區中的所有內容都可公開閱讀,但我不知道這是否可以接受,具體取決於存儲區中的其他內容(例如http:// docs.aws.amazon。 COM/AmazonS3 /最新的/ dev /例如,鬥policies.html)。 – jarmod

回答

0

好的!我在aws開發者論壇上得到了如下回復:

感謝您申請此功能,我已將它傳遞給團隊以供進一步審覈。非常感謝您的反饋。

這意味着該功能現在可能不存在。

這是AWS開發論壇的link。 無論如何,暫時有一個變通辦法。您可以在同一鏈接或here中看到更多詳細信息。