我想構建一個跨帳戶 Codepiepline Codepipeline 留在中央帳戶,所以我承擔開發帳戶的角色并創建堆疊,但同時我想在中央帳戶中使用開發帳戶的輸出堆疊創建引數存盤
例如
- Central 帳戶中的 Codepipeline 將承擔 Dev Account 的角色以部署 s3bucket
- 和 !GetAtt mydemo.DomainName 在 Central 帳戶中創建引數存盤
** 我的所有管道都保留在 Central 帳戶上,并保留來自 DEV 帳戶的所有引數存盤,以便我的代碼構建,另一個代碼管道可以讀取該值
所以對我有什么想法嗎?
#This s3 will be deploy to dev account
Resources:
DeployDevAccountBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: "dev-bucket"
AccessControl: Private
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: AES256
VersioningConfiguration:
Status: "Enabled"
#This parameter store will be deploy to Central account
BucketNameParameter:
Type: AWS::SSM::Parameter
Properties:
Name: !Sub "dev-account-s3-domainname"
Type: String
Value: !GetAtt DeployDevAccountBucket.DomainName
uj5u.com熱心網友回復:
你不能做到這一點與CloudFormation(CFN)和一個堆疊。CFN 是區域和賬戶特定的,不支持跨賬戶部署。
您必須重新構建管道以使用CFN StackSets,這需要您根據帳戶或區域將模板拆分為不同的模板。
但可能最簡單的方法是使用 CodeBuild,您可以明確承擔跨賬戶角色以在不同賬戶中部署堆疊。
uj5u.com熱心網友回復:
#此引數存盤將部署到中央帳戶
沒有任何方法可以使用AWS::SSM::Parameter您的開發帳戶中的資源在不同的帳戶中創建引數。
我的所有管道都保留在中央帳戶上,并保留來自 DEV 帳戶的所有引數存盤,以便我的代碼構建,另一個代碼管道可以讀取該值
但是,如果管道在中央帳戶中,并且您在代碼管道中使用 cloudformation 操作型別,您仍然可以通過Code Pipeline Cloudformation Action Output Variables訪問堆疊輸出。下游管道任務可以將這些輸出放入一個引數中——在中央賬戶中,管道已經在運行,或者實際上在任何賬戶中,通過角色假設。
還有另一種方法:您可以定義一個自定義 cloudformation 資源,該資源將承擔不同帳戶中的角色并在那里管理引數。不過,您必須分別管理該資源的角色和 lambda(或任何實作)。我認為堆疊輸出方法更好。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/350304.html
標籤:亚马逊网络服务 亚马逊云形成 运维 aws-codepipeline
上一篇:aws描述卷并查詢多個標簽
下一篇:為什么它在本地而不是遠程作業?
