Aggiunta e personalizzazione delle risorse dell'ambiente Elastic Beanstalk - AWS Elastic Beanstalk

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Aggiunta e personalizzazione delle risorse dell'ambiente Elastic Beanstalk

Potresti voler personalizzare le risorse dell'ambiente che fanno parte del tuo ambiente Elastic Beanstalk. Ad esempio, potresti aggiungere una coda Amazon SQS e un allarme sulla profondità di coda oppure un cluster Amazon ElastiCache. Includendo un file di configurazione nel bundle di origine, puoi personalizzare agevolmente il tuo ambiente in contemporanea con la distribuzione della versione dell'applicazione.

È possibile utilizzare la chiave Resources in un file di configurazione per creare e personalizzare le risorse AWS nel proprio ambiente. Le risorse definite nei file di configurazione vengono aggiunte al modello di AWS CloudFormation utilizzato per l'avvio dell'ambiente. Sono supportati tutti i AWS CloudFormationtipi di risorsehttps://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html.

Nota

Ogni volta che viene aggiunta una risorsa che non è gestita da Elastic Beanstalk, assicurarsi di aggiungere una policy utente con le autorizzazioni appropriate agli utenti AWS Identity and Access Management (IAM). Le policy utente gestite fornite da Elastic Beanstalk coprono solo le autorizzazioni per le risorse gestite da Elastic Beanstalk.

Ad esempio, il file di configurazione riportato di seguito consente di aggiungere un hook del ciclo di vita di Auto Scaling al gruppo Auto Scaling predefinito creato da 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"] }

In questo esempio vengono definite tre risorse: hookrole, hooktopic e lifecyclehook. Le prime due risorse corrispondono rispettivamente a un ruolo IAM, che concede ad Amazon EC2 Auto Scaling l'autorizzazione per pubblicare messaggi in Amazon SNS, e un argomento SNS, che inoltra i messaggi dal gruppo Auto Scaling a un indirizzo e-mail. Elastic Beanstalk crea queste risorse con le proprietà e i tipi specificati.

L'ultima risorsa, lifecyclehook, è l'hook del ciclo di vita stesso:

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

La definizione dell'hook del ciclo di vita utilizza due funzioni per compilare i valori per le proprietà dell'hook. { "Ref" : "AWSEBAutoScalingGroup" } recupera il nome del gruppo Auto Scaling creato da Elastic Beanstalk per l'ambiente. AWSEBAutoScalingGroup è uno dei nomi di risorsa standard fornito da Elastic Beanstalk.

Per AWS::IAM::Role, la risorsa Ref restituisce soltanto il nome del ruolo, non l'ARN. Per ottenere l'ARN del parametro RoleARN, puoi utilizzare invece un'altra funzione intrinseca, Fn::GetAtt, in grado di ottenere attributi da una risorsa. RoleARN: { "Fn::GetAtt" : [ "hookrole", "Arn"] } ottiene l'attributo Arn dalla risorsa hookrole.

{ "Ref" : "hooktopic" } ottiene l'ARN dell'argomento Amazon SNS creato in precedenza nel file di configurazione. Il valore restituito da Ref varia in base al tipo di risorsa e può essere trovato nell'AWS CloudFormationargomento relativo al tipo di risorsa AWS::SNS::Topic della Guida per l'utente di .