2016-08-04 4 views
0

私はAWS blog postを使って、AWS CodeDeployを使用してBitBucketからコードを直接配備する方法を検討しています。 appspec.ymlファイルについて言及するまでは、ほとんどがかなり簡単です。私は目的は展開する方法とその方法を記述することであると理解していますが、単なるページではなく、アプリケーションのための方法を理解していません。私のこれまでの経験では、このようなXプロジェクトに対するレポ 1ページではなく、アプリケーションを展開するためにappspec.ymlファイルを設定するにはどうすればよいですか?

  • ランのMSBuildから

    1. プルなどの一連の工程が存在することになります。
    2. Xプロジェクトに対してテストを実行します。
    3. S3にビルド成果物をコピーします。
    4. Webサーバーのアプリケーションプールを停止します。
    5. ビルド成果物を展開するcmdファイルを実行します。
    6. Webサーバー上でアプリケーションプールを起動します。
    7. クリーンアップ/ビルド後の手順。

    私は私が上に書いた手順とappspec.ymlファイルdetailed hereの「ファイル」と「フック」のセクションの間に何らかの相関関係があることを前提としています。残念ながら、私は2つの間の頭の中でマッピングを理解することはできません。そして、私が見つけたすべてのブログ記事、オンラインドキュメント、ビデオは、「あなたはこのファイルが必要です」と言っています。 1つまたは2つのフックを有する。私は、展開の実際のビルド部分をどのように統合するかについて犠牲になっています。

    誰でも簡単なコピーの貼り付けではなく、完全なアプリケーションの配置を説明するappspec.ymlファイルの例を提供することができますか、このプロセスをよりよく説明するリソースを指していますか?

  • 答えて

    2

    CodeDeployは、ビルドされたアプリケーションをデプロイするためのものです。ビルドなどは事前に個別に管理する必要があります。あなたがcodeeployに渡すzipファイルは、ビルドされたアプリケーションとインストールを記述するappspecでなければなりません。

    以下は、私の.NETアプリケーションのためのappspecです。

    codedeployに関して
    version: 0.0 
    os: windows 
    files: 
        - source:/
        destination: C:\inetpub\wwwroot 
    hooks: 
        BeforeInstall: 
        - location: CodeDeploy/appstop.bat  
         runas: administrator 
        ApplicationStart: 
        - location: CodeDeploy/appstart.bat  
         runas: administrator 
    

    、私のプロセスはこれです:GitHubのに

    1. チェックコード、
    2. Githubのはジェンキンス
    3. にウェブフックを送信
    4. ジェンキンスは、MSがコードをビルド/テストを実行するために構築し使用しています。
    5. Jenkinsはビルド成果物(ビルドされたソリューション)を圧縮してS3にアップロードします
    6. Jenkinsはs3 zipファイルを使用してコード展開をトリガーします。
    7. コードdeployは、zip内のappspecを読み取り、それに応じて内容を抽出します。
    8. ライフサイクルフックは適切なタイミングで実行されます。私の場合は、IISの起動と停止、およびELBからのインスタンスの安全な削除を行います。
    +0

    Gotcha。私の混乱は、AWSがCodeBeepを使用してCodeBeepの統合を発表したという事実に根ざしていると思う.BipBucketのビルドとテストの機能をすべて処理するために、CodePipeline(これはBitBucketをネイティブにサポートしていない)私はまだ私たちのプロセスからジェンキンスを完全に取り除くことができないように見えます。説明をありがとう。 – Necoras

    関連する問題