如何將工件作爲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
來實現。
在此先感謝!
也許您可以使用AWS Lambda,當您的構建工件上傳到特定的S3存儲桶時觸發--Lambda將使用S3 API修改S3對象權限。或者您可以將AWS CodeBuild配置爲通過SNS發送構建通知,並通過修改構建工件權限來響應該通知。 – jarmod
謝謝!我會嘗試。 – ranjjose
您也可以研究應用S3存儲桶政策,使存儲區中的所有內容都可公開閱讀,但我不知道這是否可以接受,具體取決於存儲區中的其他內容(例如http:// docs.aws.amazon。 COM/AmazonS3 /最新的/ dev /例如,鬥policies.html)。 – jarmod