メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::ElasticBeanstalk::Environment

AWS Elastic Beanstalk 環境を作成または更新します。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

Copy
{ "Type" : "AWS::ElasticBeanstalk::Environment", "Properties" : { "ApplicationName" : String, "CNAMEPrefix" : String, "Description" : String, "EnvironmentName" : String, "OptionSettings" : [ OptionSettings, ... ], "PlatformArn" : String, "SolutionStackName" : String, "Tags" : [ Resource Tag, ... ], "TemplateName" : String, "Tier" : Environment Tier, "VersionLabel" : String } }

YAML

Copy
Type: "AWS::ElasticBeanstalk::Environment" Properties: ApplicationName: String CNAMEPrefix: String Description: String EnvironmentName: String OptionSettings: - OptionSettings PlatformArn: String SolutionStackName: String Tags: - Resource Tag, ... TemplateName: String Tier: Environment Tier VersionLabel: String

プロパティ

詳細については、『AWS Elastic Beanstalk API リファレンス』の「CreateEnvironment」を参照してください。

ApplicationName

この環境に関連付けられたアプリケーションの名前。

Required: Yes

Type: String

更新に伴う要件: 置換

CNAMEPrefix

Elastic Beanstalk 環境の URL のプレフィックス。

Required: No

Type: String

更新に伴う要件: 置換

Description

この環境を識別するための説明。

Required: No

Type: String

更新に伴う要件: 中断はありません。

EnvironmentName

Elastic Beanstalk 環境の名前。名前を指定しない場合、AWS CloudFormation は一意の物理 ID を生成し、その ID を環境名として使用します。詳細については、「Name タイプ」を参照してください。

重要

名前を指定すると、このリソースの置換が必要な更新はできません。中断が不要であるか、一定の中断が必要な更新であれば、行うことができます。リソースを置き換える必要がある場合は、新しい名前を指定します。

Required: No

Type: String

更新に伴う要件: 置換

OptionSettings

インスタンスタイプなど、この環境の設定オプションを定義するキーと値のペア。これらのオプションは、ソリューションスタックまたは設定テンプレートで定義されている値をオーバーライドします。スタックの更新中にオプションを削除した場合、削除されたオプションに関してデフォルト値が復元されます。

必須: はい. IamInstanceProfileServiceRole オプションは必須です。

OptionSettingType: リスト。

更新に伴う要件: 一時的な中断。

PlatformArn

環境で使用するカスタムプラットフォームの Amazon リソースネーム (ARN)。詳細については、『AWS Elastic Beanstalk 開発者ガイド』の「カスタムプラットフォーム」を参照してください。

注記

PlatformArn を指定した場合は、SolutionStackName を指定しないでください。

必須: いいえ

タイプ: 文字列

更新に伴う要件: 中断はありません。

: "PlatformArn": "arn:aws:elasticbeanstalk:us-east-1::platform/PHP 5.4 running on 64bit Amazon Linux/2.4.4"

SolutionStackName

この設定で使用する Elastic Beanstalk ソリューションスタックの名前。詳細については、AWS Elastic Beanstalk 開発者ガイドの「サポートされているプラットフォーム」を参照してください。

注記

SolutionStackName を指定した場合は、PlatformArn または TemplateName を指定しないでください。

Required: No

Type: String

更新に伴う要件: 置換

Tags

この環境に対する任意のタグのセット (キーと値のペア)。

Required: No

Type: AWS CloudFormation Resource Tags

更新に伴う要件: タグを更新できるのは、環境の置き換えが必要になるような別のプロパティ (ApplicationName プロパティなど) を更新する場合のみです。

TemplateName

環境とともに使用する Elastic Beanstalk 設定テンプレートの名前。

注記

TemplateName を指定した場合は、SolutionStackName を指定しないでください。

Required: No

Type: String

更新に伴う要件: 一時的な中断。

Tier

この環境の作成に使用する階層を指定します。選択した環境枠によって、Elastic Beanstalk がリソースをプロビジョニングし、HTTP (S) リクエストを処理するウェブアプリケーション、またはバックグラウンドプロセスタスクを処理するウェブアプリケーションのどちらをサポートするかが決まります。

Required: No

タイプ: Elastic Beanstalk Environment Tier プロパティタイプ

更新に伴う要件: 「Elastic Beanstalk Environment Tier プロパティタイプ」を参照してください。

VersionLabel

環境に関連付けるバージョン。

Required: No

Type: String

更新に伴う要件: 一時的な中断。

戻り値

参照番号

このリソースの論理 ID が Ref 組み込み関数に提供されると、Ref によりリソース名が返されます。

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

Fn::GetAtt

Fn::GetAtt は、このタイプの指定された属性の値を返します。以下には、利用可能な属性とサンプル戻り値のリストが示されます。

EndpointURL

この環境のロードバランサーの URL。

例:

awseb-myst-myen-132MQC4KRLAMD-1371280482.us-east-2.elb.amazonaws.com

Fn::GetAtt の使用の詳細については、「Fn::GetAtt」を参照してください。

シンプルな環境

JSON

Copy
{ "Type" : "AWS::ElasticBeanstalk::Environment", "Properties" : { "ApplicationName" : { "Ref" : "sampleApplication" }, "Description" : "AWS Elastic Beanstalk Environment running PHP Sample Application", "EnvironmentName" : "SamplePHPEnvironment", "TemplateName" : "DefaultConfiguration", "VersionLabel" : "Initial Version" } }

YAML

Copy
Type: "AWS::ElasticBeanstalk::Environment" Properties: ApplicationName: Ref: sampleApplication Description: "AWS Elastic Beanstalk Environment running PHP Sample Application" EnvironmentName: SamplePHPEnvironment TemplateName: DefaultConfiguration VersionLabel: "Initial Version"

埋め込みオプション設定を使用した環境

JSON

Copy
{ "Type" : "AWS::ElasticBeanstalk::Environment", "Properties" : { "ApplicationName" : { "Ref" : "sampleApplication" }, "Description" : "AWS Elastic Beanstalk Environment running Python Sample Application", "EnvironmentName" : "SamplePythonEnvironment", "SolutionStackName" : "64bit Amazon Linux 2017.03 v2.5.0 running Python 2.7", "OptionSettings" : [ { "Namespace" : "aws:autoscaling:launchconfiguration", "OptionName" : "EC2KeyName", "Value" : { "Ref" : "KeyName" } } ], "VersionLabel" : "Initial Version" } }

YAML

Copy
Type: "AWS::ElasticBeanstalk::Environment" Properties: ApplicationName: Ref: sampleApplication Description: "AWS Elastic Beanstalk Environment running Python Sample Application" EnvironmentName: SamplePythonEnvironment SolutionStackName: "64bit Amazon Linux 2017.03 v2.5.0 running Python 2.7" OptionSettings: - Namespace: "aws:autoscaling:launchconfiguration" OptionName: EC2KeyName Value: Ref: KeyName VersionLabel: "Initial Version"

カスタムプラットフォームまたはサポートされているプラットフォーム

次の例には、カスタムプラットフォームには PlatformArn、サポートされているプラットフォームには SolutionStackName をスタック作成時に指定できるようにするパラメータが含まれます。

JSON

Copy
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "Elasticbeanstalk test template", "Parameters": { "BeanstalkService": { "Type": "String" }, "Ec2Service": { "Type": "String" }, "Partition":{ "Type": "String" }, "SolutionStackName": { "Type": "String" }, "PlatformArn": { "Type": "String" } }, "Resources": { "Application": { "Properties": { "ApplicationVersions": [ { "Description": "Version 1.0", "SourceBundle": { "S3Bucket": { "Fn::Join": ["", ["elasticbeanstalk-samples-", {"Ref": "AWS::Region"}]] }, "S3Key": "python-sample-20150402.zip" }, "VersionLabel": "Initial Version" } ], "Description": "AWS Elastic Beanstalk Python Sample Application" }, "Type": "AWS::ElasticBeanstalk::Application" }, "Environment": { "Properties": { "ApplicationName": { "Ref": "Application" }, "Description": "AWS Elastic Beanstalk Environment running Python Sample Application", "PlatformArn": { "Ref" : "PlatformArn"}, "SolutionStackName": { "Ref": "SolutionStackName" }, "VersionLabel": "Initial Version", "OptionSettings": [ { "Namespace": "aws:autoscaling:launchconfiguration", "OptionName": "IamInstanceProfile", "Value": { "Ref": "InstanceProfile" } }, { "Namespace": "aws:elasticbeanstalk:environment", "OptionName": "ServiceRole", "Value": { "Ref": "ServiceRole" } } ] }, "Type": "AWS::ElasticBeanstalk::Environment" }, "ServiceRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": {"Ref": "BeanstalkService"} }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "elasticbeanstalk" } } } ] }, "Policies": [ { "PolicyName": "root", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "elasticloadbalancing:DescribeInstanceHealth", "ec2:DescribeInstances", "ec2:DescribeInstanceStatus", "ec2:GetConsoleOutput", "ec2:AssociateAddress", "ec2:DescribeAddresses", "ec2:DescribeSecurityGroups", "sqs:GetQueueAttributes", "sqs:GetQueueUrl", "autoscaling:DescribeAutoScalingGroups", "autoscaling:DescribeAutoScalingInstances", "autoscaling:DescribeScalingActivities", "autoscaling:DescribeNotificationConfigurations" ], "Resource": [ "*" ] } ] } } ], "Path": "/" } }, "InstanceProfile": { "Type": "AWS::IAM::InstanceProfile", "Properties": { "Path": "/", "Roles": [ { "Ref": "InstanceProfileRole" } ] } }, "InstanceProfileRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ {"Ref": "Ec2Service"} ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Policies": [ { "PolicyName": "root", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Sid": "BucketAccess", "Action": [ "s3:Get*", "s3:List*", "s3:PutObject" ], "Effect": "Allow", "Resource": [ { "Fn::Join": [ "", [ "arn:", { "Ref": "Partition" }, ":s3:::elasticbeanstalk-*-", { "Ref": "AWS::AccountId" } ] ] }, { "Fn::Join": [ "", [ "arn:", { "Ref": "Partition" }, ":s3:::elasticbeanstalk-*-", { "Ref": "AWS::AccountId" }, "/*" ] ] }, { "Fn::Join": [ "", [ "arn:", { "Ref": "Partition" }, ":s3:::elasticbeanstalk-*-", { "Ref": "AWS::AccountId" }, "-*" ] ] }, { "Fn::Join": [ "", [ "arn:", { "Ref": "Partition" }, ":s3:::elasticbeanstalk-*-", { "Ref": "AWS::AccountId" }, "-*/*" ] ] } ] }, { "Sid": "ECSAccess", "Effect": "Allow", "Action": [ "ecs:StartTask", "ecs:StopTask", "ecs:RegisterContainerInstance", "ecs:DeregisterContainerInstance", "ecs:DescribeContainerInstances", "ecs:DiscoverPollEndpoint", "ecs:Submit*", "ecs:Poll" ], "Resource": "*" }, { "Sid": "QueueAccess", "Action": [ "sqs:ChangeMessageVisibility", "sqs:DeleteMessage", "sqs:ReceiveMessage", "sqs:SendMessage" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "DynamoPeriodicTasks", "Action": [ "dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:PutItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:UpdateItem" ], "Effect": "Allow", "Resource": [ { "Fn::Join": [ "", [ "arn:", { "Ref": "Partition" }, ":dynamodb:*:", { "Ref": "AWS::AccountId" }, ":table/*-stack-AWSEBWorkerCronLeaderRegistry*" ] ] } ] }, { "Sid": "MetricsAccess", "Action": [ "cloudwatch:PutMetricData" ], "Effect": "Allow", "Resource": "*" } ] } } ], "Path": "/" } } } }

YAML

Copy
AWSTemplateFormatVersion: 2010-09-09 Description: Elasticbeanstalk test template Parameters: BeanstalkService: Type: String Ec2Service: Type: String Partition: Type: String SolutionStackName: Type: String PlatformArn: Type: String Resources: Application: Properties: ApplicationVersions: - Description: Version 1.0 SourceBundle: S3Bucket: !Join - '' - - elasticbeanstalk-samples- - !Ref 'AWS::Region' S3Key: python-sample-20150402.zip VersionLabel: Initial Version Description: AWS Elastic Beanstalk Python Sample Application Type: 'AWS::ElasticBeanstalk::Application' Environment: Properties: ApplicationName: !Ref Application Description: AWS Elastic Beanstalk Environment running Python Sample Application PlatformArn: !Ref PlatformArn SolutionStackName: !Ref SolutionStackName VersionLabel: Initial Version OptionSettings: - Namespace: 'aws:autoscaling:launchconfiguration' OptionName: IamInstanceProfile Value: !Ref InstanceProfile - Namespace: 'aws:elasticbeanstalk:environment' OptionName: ServiceRole Value: !Ref ServiceRole Type: 'AWS::ElasticBeanstalk::Environment' ServiceRole: Type: 'AWS::IAM::Role' Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Sid: '' Effect: Allow Principal: Service: !Ref BeanstalkService Action: 'sts:AssumeRole' Condition: StringEquals: 'sts:ExternalId': elasticbeanstalk Policies: - PolicyName: root PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Action: - 'elasticloadbalancing:DescribeInstanceHealth' - 'ec2:DescribeInstances' - 'ec2:DescribeInstanceStatus' - 'ec2:GetConsoleOutput' - 'ec2:AssociateAddress' - 'ec2:DescribeAddresses' - 'ec2:DescribeSecurityGroups' - 'sqs:GetQueueAttributes' - 'sqs:GetQueueUrl' - 'autoscaling:DescribeAutoScalingGroups' - 'autoscaling:DescribeAutoScalingInstances' - 'autoscaling:DescribeScalingActivities' - 'autoscaling:DescribeNotificationConfigurations' Resource: - '*' Path: / InstanceProfile: Type: 'AWS::IAM::InstanceProfile' Properties: Path: / Roles: - !Ref InstanceProfileRole InstanceProfileRole: Type: 'AWS::IAM::Role' Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: Service: - !Ref Ec2Service Action: - 'sts:AssumeRole' Policies: - PolicyName: root PolicyDocument: Version: 2012-10-17 Statement: - Sid: BucketAccess Action: - 's3:Get*' - 's3:List*' - 's3:PutObject' Effect: Allow Resource: - !Join - '' - - 'arn:' - !Ref Partition - ':s3:::elasticbeanstalk-*-' - !Ref 'AWS::AccountId' - !Join - '' - - 'arn:' - !Ref Partition - ':s3:::elasticbeanstalk-*-' - !Ref 'AWS::AccountId' - /* - !Join - '' - - 'arn:' - !Ref Partition - ':s3:::elasticbeanstalk-*-' - !Ref 'AWS::AccountId' - '-*' - !Join - '' - - 'arn:' - !Ref Partition - ':s3:::elasticbeanstalk-*-' - !Ref 'AWS::AccountId' - '-*/*' - Sid: ECSAccess Effect: Allow Action: - 'ecs:StartTask' - 'ecs:StopTask' - 'ecs:RegisterContainerInstance' - 'ecs:DeregisterContainerInstance' - 'ecs:DescribeContainerInstances' - 'ecs:DiscoverPollEndpoint' - 'ecs:Submit*' - 'ecs:Poll' Resource: '*' - Sid: QueueAccess Action: - 'sqs:ChangeMessageVisibility' - 'sqs:DeleteMessage' - 'sqs:ReceiveMessage' - 'sqs:SendMessage' Effect: Allow Resource: '*' - Sid: DynamoPeriodicTasks Action: - 'dynamodb:BatchGetItem' - 'dynamodb:BatchWriteItem' - 'dynamodb:DeleteItem' - 'dynamodb:GetItem' - 'dynamodb:PutItem' - 'dynamodb:Query' - 'dynamodb:Scan' - 'dynamodb:UpdateItem' Effect: Allow Resource: - !Join - '' - - 'arn:' - !Ref Partition - ':dynamodb:*:' - !Ref 'AWS::AccountId' - ':table/*-stack-AWSEBWorkerCronLeaderRegistry*' - Sid: MetricsAccess Action: - 'cloudwatch:PutMetricData' Effect: Allow Resource: '*' Path: /

以下の資料も参照してください。