繁体   English   中英

如何从CodePipeline调用AWS CLI命令?

[英]How to invoke AWS CLI command from CodePipeline?

我想将工件从账户1的S3存储桶复制到账户2的S3存储桶。虽然我能够设置复制,但是我想知道是否存在从管道内部调用AWS CLI命令的方法。

可以使用Lambda函数调用它吗? 如果是,则任何小的示例脚本都将有所帮助。

是的,您可以将Lambda Invoke操作添加到管道中以调用copyobject API。 Lambda函数的核心部分如下。

 exports.copyRepoToProdS3 = (event, context) => { const jobId = event['CodePipeline.job'].id const s3Location = event['CodePipeline.job'].data.inputArtifacts[0].location.s3Location const cpParams = JSON.parse(event['CodePipeline.job'].data.actionConfiguration.configuration.UserParameters) let promises = [] for (let bucket of prodBuckets) { let params = { Bucket: bucket, CopySource: s3Location['bucketName'] + '/' + s3Location['objectKey'], Key: cpParams['S3ObjectKey'] } promises.push(s3.copyObject(params).promise()) } return Promise.all(promises) .then((data) => { console.log('Successfully copied repo to buckets!') }).catch((error) => { console.log('Failed to copy repo to buckets!', error) }) } 

可以在以下链接中找到将角色添加和报告处理结果添加到CodePipeline的更多详细步骤。 https://medium.com/@codershunshun/how-to-invoke-aws-lambda-in-codepipeline-d7c77457af95

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM