create-wmsa.cf.jsonファイルの詳細最終更新日: 2020年11月9日

デフォルト値の設定

(ジャスミンソフトが提供する)s3uploadfiles フォルダに格納されている create-wmsa.cf.json ファイルには、デフォルト値を指定できるパラメータが含まれています。これらを適切に設定することで、AWS環境構築時のパラメータ設定を省略できます。

ここではS3BucketName,WMSAName,CertificateArn,HostedZone,EnvironmentTypeにDefaultを指定した例を示します。

...
    "Parameters": {
        "EnvironmentName": {
            "Description": "Environment name",
            "Type": "String"
        },
        "ApplicationName": {
            "Description": "Application name",
            "Type": "String"
        },
        "Hostname": {
            "Description": "DNS Hostname",
            "Type": "String"
        },

        "S3BucketName": {
            "Description": "S3 bucket name",
            "Default": "wagby-cf-pipeline-wmsa",
            "Type": "String"
        },
        "WMSAName": {
            "Description": "WMSA name",
            "Default": "wmsa"
            "Type": "String"
        },
        "CertificateArn": {
            "Description": "ACM Certificate Arn",
            "Default": "arn:aws:acm:ap-northeast-1:111111111111:certificate/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
            "Type": "String"
        },
        "HostedZone": {
            "Description": "DNS Hosted zone",
            "Default": "wmsa.wagby.com",
            "Type": "String"
        },

        "EnvironmentType": {
            "Description": "Environment type",
            "Type": "String",
            "Default": "cluster",
            "AllowedValues": [
                "simple",
                "rdb",
                "cluster"
            ]
        },
        "NotifyEmailAddress": {
            "Description": "Notify Email Address for CodePipeline execution",
            "Type": "String",
            "Default": ""
        },
...

この指定を行ったテンプレートをS3に転送します。

aws s3 sync . s3://wagby-cf-pipeline-wmsa

次回以降、CloudFormationテンプレートを使ったスタックの作成時に、デフォルト値が指定されたパラメータを省略できます。

aws cloudformation create-stack --stack-name WmsaApp1Test --capabilities CAPABILITY_IAM --capabilities CAPABILITY_NAMED_IAM \
--template-url https://wagby-cf-pipeline-wmsa.s3-ap-northeast-1.amazonaws.com/create-wmsa.json \
--parameters ParameterKey=EnvironmentName,ParameterValue=testenv \
ParameterKey=ApplicationName,ParameterValue=wmsaapp1test \
ParameterKey=Hostname,ParameterValue=app1test

その他のパラメータ

create-wmsa.cf.json に指定できる、その他のパラメータを説明します。

名前説明
DomainURL 各ドメインのドメイン名とURLの対応表。Wagbyマイクロサービス利用時に設定する。[詳細...]
NotifyEmailAddress AWS管理者のメールアドレスを指定すると、CodePipeline実行時にメールが届くようになります。
ECSServiceDesireCount ECSで起動するコンテナの数。CloudFormationのリソース作成後に1に変更する。コンテナを停止して、アクセスできないようにする場合 0 にするとよい。
CodePipelineExecType "buildonly" を指定するとCodeCommitへのコミット時にDockerイメージのビルドまで行うが、デプロイは行わない。"full"を指定すると、CodeCommitへのコミット時にDockerイメージのビルドとECSへのデプロイを行う。[詳細...]
ExecuteCodePipelineAtCommit CodeCommitへのコミット時にCodePipelineの実行を行うかどうかを指定する。この値がtrueの場合は行う。falseにするとコミットしてもBuildやDeployが行われないため、入れ替えを手動で行うことができる。
ELBListnerRulePriority ロードバランサーで指定したドメイン名へのアクセスをコンテナに振り分ける際のルールの優先度を示す。1から開始される。Wagbyマイクロサービス運用で利用する。[詳細...]

検証

CloudFormationテンプレートを修正した場合、このCloudFormationテンプレートファイルをひとつづつチェックするコマンドがあります。

aws cloudformation validate-template \
--template-url https://wagby-cf-pipeline-wmsa.s3-ap-northeast-1.amazonaws.com/create-wmsa.json

create-stackには時間がかかるため、あらかじめテンプレートの間違いがないことをチェックすることを推奨します。