Hinzufügen und Anpassen von Elastic Beanstalk-Umgebungsressourcen - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Hinzufügen und Anpassen von Elastic Beanstalk-Umgebungsressourcen

Sie können Ihre Umgebungsressourcen, die Teil Ihrer Elastic Beanstalk-Umgebung sind, anpassen. Beispielsweise können Sie eine Amazon SQS-Warteschlange und einen Alarm für die Warteschlange oder einen Amazon ElastiCache-Cluster hinzufügen. Indem Sie Ihrem Quell-Bundle eine Konfigurationsdatei beifügen, können Sie die Umgebung einfach gleichzeitig mit der Bereitstellung der Anwendungsversion anpassen.

Sie können den Resources-Schlüssel in einer Konfigurationsdatei zum Erstellen und Anpassen von AWS-Ressourcen in Ihrer Umgebung verwenden. Ressourcen, die in den Konfigurationsdateien definiert sind, werden zur AWS CloudFormation-Vorlage hinzugefügt, die zum Starten Ihrer Umgebung verwendet wird. Alle AWS CloudFormation -Ressourcentypen werden unterstützt.

Anmerkung

Wenn Sie eine Ressource hinzufügen, die nicht von Elastic Beanstalk verwaltet wird, fügen Sie Ihren AWS Identity and Access Management (IAM)-Benutzern eine Benutzerrichtlinie mit den entsprechenden Berechtigungen hinzu. Die verwalteten Benutzerrichtlinien, die Elastic Beanstalk bietet, decken nur Berechtigungen für von Elastic Beanstalk verwaltete Ressourcen ab.

Beispielsweise fügt die folgende Konfigurationsdatei einen Auto Scaling-Lebenszyklus-Hook zur Standard-Auto Scaling-Gruppe hinzu, die von Elastic Beanstalk erstellt wurde:

~/my-app/.ebextensions/as-hook.config

Resources: hookrole: Type: AWS::IAM::Role Properties: AssumeRolePolicyDocument: { "Version" : "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "autoscaling.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] } Policies: [ { "PolicyName": "SNS", "PolicyDocument": { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Resource": "*", "Action": [ "sqs:SendMessage", "sqs:GetQueueUrl", "sns:Publish" ] } ] } } ] hooktopic: Type: AWS::SNS::Topic Properties: Subscription: - Endpoint: "my-email@example.com" Protocol: email lifecyclehook: Type: AWS::AutoScaling::LifecycleHook Properties: AutoScalingGroupName: { "Ref" : "AWSEBAutoScalingGroup" } LifecycleTransition: autoscaling:EC2_INSTANCE_TERMINATING NotificationTargetARN: { "Ref" : "hooktopic" } RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] }

In diesem Beispiel werden drei Ressourcen definiert, hookrole, hooktopic und lifecyclehook. Die ersten beiden Ressourcen sind eine IAM-Rolle, die Amazon EC2 Auto Scaling die Berechtigung zum Veröffentlichen von Nachrichten an Amazon SNS erteilt, sowie ein SNS-Thema, das Nachrichten aus der Auto Scaling-Gruppe an eine E-Mail-Adresse weiterleitet. Elastic Beanstalk erstellt diese Ressourcen mit den angegebenen Eigenschaften und Typen.

Die letzte Ressource, lifecyclehook, ist der Lebenszyklus-Hook selbst:

lifecyclehook: Type: AWS::AutoScaling::LifecycleHook Properties: AutoScalingGroupName: { "Ref" : "AWSEBAutoScalingGroup" } LifecycleTransition: autoscaling:EC2_INSTANCE_TERMINATING NotificationTargetARN: { "Ref" : "hooktopic" } RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] }

Die Lebenszyklus-Hook-Definition verwendet zwei Funktionen, um die Werte für die Hook-Eigenschaften zu füllen. { "Ref" : "AWSEBAutoScalingGroup" } ruft den Namen der Auto Scaling-Gruppe ab, die von Elastic Beanstalk für die Umgebung erstellt wurde. AWSEBAutoScalingGroup ist einer der Standard-Ressourcennamen, die von Elastic Beanstalk bereitgestellt wurden.

Für AWS::IAM::Role gibt Ref nur den Namen der Rolle, nicht die ARN, zurück. Wenn Sie den ARN für den RoleARN-Parameter abrufen möchten, verwenden Sie stattdessen eine andere intrinsische Funktion, Fn::GetAtt, mit der jedes Attribut aus einer Ressource abgerufen werden kann. RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] } ruft das Arn-Attribut aus der hookrole-Ressource ab.

{ "Ref" : "hooktopic" } ruft den ARN des Amazon SNS-Themas ab, der zuvor in der Konfigurationsdatei erstellt wurde. Der von Ref zurückgegebene Wert variiert je nach Ressourcentyp und kann im AWS CloudFormation-Benutzerhandbuch unter dem Thema für den AWS::SNS::Topic-Ressourcentyp gefunden werden.