web-dev-qa-db-ja.com

既存のCodePipeline / CodeBuildプロジェクトをCloudformationにエクスポートします

既存のCodePipeline/CodeBuildプロジェクトをCloudformationにエクスポートする方法はありますか?

既存のCI/CDインフラストラクチャをコードに変換している最中なので、他のAWSリージョンに簡単に複製できます。

現在、すべてのCodePipeline/CodeBuildプロジェクトはブラウザーのAWSコンソールを介して実行されていますが、これは面倒でエラーが発生しやすいことは明らかです。

12
dashmug

すでにいくつかのコードパイプラインを作成している場合は、CLIを使用してそれらをクラウドフォーメーションとして抽出します。

コマンドはおおよそこれです

aws codepipeline get-pipeline --name

これにより、クラウドフォーメーション用のコードパイプラインリソースが返されます。 codebuildプロジェクトやs3バケットやcodecommitリポジトリなどの他のリソースに入力する必要がある場所を確認できます。

ただし、cloudformationによってテンプレートが有効であると見なされるようにするには、テンプレートを操作する必要があることに注意してください。 CLIからのリソースの行は大文字で始める必要があるため、それを変更するのは面倒です。

もう1つ知っておくべきことは、必要なパイプラインです。テンプレートにも2つの役割があり、それ自体がバケットであると思います。これらすべてを単一のテンプレートにまとめることで、再現性のあるパイプラインを実現できます。幸運を!

15
hynespm

通常、既存のリソースからCloudFormationテンプレートを生成するために CloudFormer をお勧めしますが、CodePipeline/CodeBuildがサポートされているようには見えません。

次善の策は、既存のテンプレートから始めて、必要に応じてそれらを変更することです。

ここではいくつかの例を示します。

  1. https://github.com/awslabs/codepipeline-nested-cfn
  2. https://github.com/stelligent/dromedary/blob/master/pipeline/cfn/codepipeline-cfn.json
3
Rodrigo M

そして、codebuild-projectに対してこれを試してください:

aws codebuild batch-get-projects --name --output json

次に、CodeBuildテンプレートです。ヒント:

awsヘルプ

または

awscodebuildヘルプ

非常によく役立ちます。

2
Thomas Michael