Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Ajout et personnalisation des ressources de l'environnement Elastic Beanstalk
Vous pouvez personnaliser les ressources de votre environnement qui font partie de votre environnement Elastic Beanstalk. Par exemple, vous pouvez ajouter une file d'attente Amazon SQS et une alarme relative à la longueur de la file d'attente, ou ajouter un cluster Amazon ElastiCache. Vous pouvez facilement personnaliser votre environnement en même temps que vous déployez votre version d'application, en incluant un fichier de configuration dans votre bundle source.
Vous pouvez utiliser la clé Resources
dans un fichier de configuration pour créer et personnaliser les ressources AWS de votre environnement. Les ressources définies dans les fichiers de configuration sont ajoutées au modèle AWS CloudFormation utilisé pour lancer votre environnement. Tous les types de ressources AWS CloudFormation sont pris en charge.
Note
Chaque fois que vous ajoutez une ressource qui n'est pas gérée par Elastic Beanstalk, assurez-vous d'ajouter une politique d'utilisateur avec les autorisations appropriées à vos utilisateurs (IAM) AWS Identity and Access Management. Les politiques d'utilisateur gérées fournies par Elastic Beanstalk ne couvrent que les autorisations pour les ressources gérées par Elastic Beanstalk.
Par exemple, le fichier de configuration suivant ajoute un hook de cycle de vie Auto Scaling au groupe Auto Scaling par défaut créé par Elastic Beanstalk :
~/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"] }
Cet exemple définit trois ressources : hookrole
, hooktopic
et lifecyclehook
. Les deux premières ressources correspondent à un rôle IAM, qui autorise Amazon EC2 Auto Scaling à publier des messages dans Amazon SNS, et à une rubrique SNS, qui transmet des messages vers une adresse e-mail à partir du groupe Auto Scaling. Elastic Beanstalk crée ces ressources avec les propriétés et les types spécifiés.
La ressource finale, lifecyclehook
, correspond au hook du cycle de vie lui-même :
lifecyclehook:
Type: AWS::AutoScaling::LifecycleHook
Properties:
AutoScalingGroupName: { "Ref" : "AWSEBAutoScalingGroup" }
LifecycleTransition: autoscaling:EC2_INSTANCE_TERMINATING
NotificationTargetARN: { "Ref" : "hooktopic" }
RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] }
La définition du hook de cycle de vie utilise deux fonctions pour renseigner les valeurs relatives aux propriétés du hook. {
"Ref" : "AWSEBAutoScalingGroup" }
récupère le nom du groupe Auto Scaling créé par Elastic Beanstalk pour l'environnement. AWSEBAutoScalingGroup
est l'un des noms de ressource standard fournis par Elastic Beanstalk.
Pour AWS::IAM::Role
, Ref
renvoie uniquement le nom du rôle, pas l'ARN. Pour obtenir l'ARN du paramètre RoleARN
, vous devez utiliser une autre fonction intrinsèque, Fn::GetAtt
, qui permet d'obtenir un attribut à partir d'une ressource. RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] }
obtient l'attribut Arn
depuis la ressource hookrole
.
{ "Ref" : "hooktopic" }
permet d'obtenir l'ARN de la rubrique Amazon SNS créée précédemment dans le fichier de configuration. La valeur renvoyée par Ref
varie selon le type de ressource et se trouve dans la rubrique du Guide de l'utilisateur AWS CloudFormation dédiée au type de ressource AWS::SNS::Topic.