Verwenden Sie AWS Systems Manager Parameter anstelle von AMI IDs in Startvorlagen - Amazon EC2 Auto Scaling

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.

Verwenden Sie AWS Systems Manager Parameter anstelle von AMI IDs in Startvorlagen

In diesem Abschnitt erfahren Sie, wie Sie eine Startvorlage erstellen, die einen AWS Systems Manager Parameter angibt, der auf eine Amazon Machine Image (AMI) -ID verweist. Sie können einen Parameter verwenden, der in Ihrem eigenen gespeichert ist AWS-Konto, einen Parameter, der von einem anderen gemeinsam genutzt wird AWS-Konto, oder einen öffentlichen Parameter für ein öffentliches AMI, das von verwaltet wird, verwenden AWS.

Mit Systems Manager Manager-Parametern können Sie Ihre Auto Scaling Scaling-Gruppen so aktualisieren, dass sie neues AMI verwenden, IDs ohne bei jeder Änderung einer AMI-ID neue Startvorlagen oder neue Versionen von Startvorlagen erstellen zu müssen. Diese IDs können sich regelmäßig ändern, z. B. wenn ein AMI mit den neuesten Betriebssystem- oder Softwareupdates aktualisiert wird.

Sie können Ihre eigenen Systems Manager Manager-Parameter mithilfe des Parameterspeichers, einer Funktion von, erstellen, aktualisieren oder löschen AWS Systems Manager. Sie müssen einen Systems-Manager-Parameter erstellen, bevor Sie ihn in einer Startvorlage verwenden können. Erstellen Sie zunächst einen Parameter mit dem Datentyp aws:ec2:image und geben Sie als Wert die ID eines AMI ein. Die AMI-ID nimmt Form ami-<identifier> an, zum Beispiel ami-123example456. Die korrekte AMI-ID ist vom Instance-Typ und der AWS-Region abhängig, in der Sie Ihre Auto-Scaling-Gruppe starten.

Weitere Informationen zum Erstellen eines gültigen Parameters für eine AMI-ID finden Sie unter Systems Manager Manager-Parameter erstellen.

Erstellen Sie eine Startvorlage, die einen Parameter für das AMI angibt

Verwenden Sie eine der folgenden Methoden, um eine Startvorlage zu erstellen, die einen Parameter für das AMI angibt:

Console
Um eine Startvorlage mithilfe eines AWS Systems Manager Parameters zu erstellen
  1. Öffnen Sie die EC2 Amazon-Konsole unter https://console.aws.amazon.com/ec2/.

  2. Wählen Sie im Navigationsbereich Launch Templates (Startvorlagen) und dann Create launch template (Startvorlage erstellen) aus.

  3. Geben Sie für Launch template name (Startvorlagenname) einen aussagekräftigen Namen für die Startvorlage ein.

  4. Wählen Sie unter Anwendungs- und Betriebssystem-Images (Amazon Machine Image) die Option Mehr durchsuchen aus AMIs.

  5. Wählen Sie die Pfeiltaste rechts neben der Suchleiste und wählen Sie dann Benutzerdefinierten Wert/Systems-Manager-Parameter angeben aus.

  6. Gehen Sie im Dialogfeld Benutzerdefinierten Wert oder Systems-Manager-Parameter angeben wie folgt vor:

    1. Geben Sie für AMI-ID oder Systems-Manager-Parameterzeichenfolge den Systems-Manager-Parameternamen in einem der folgenden Formate ein:

      So verweisen Sie auf einen öffentlichen Parameter:

      • resolve:ssm:public-parameter

      So verweisen Sie auf einen Parameter, der im selben Konto gespeichert ist:

      • resolve:ssm:parameter-name

      • resolve:ssm:parameter-name:version-number

      • resolve:ssm:parameter-name:label

      So verweisen Sie auf einen von einem anderen AWS-Konto freigegebenen Parameter:

      • resolve:ssm:parameter-ARN

      • resolve:ssm:parameter-ARN:version-number

      • resolve:ssm:parameter-ARN:label

    2. Wählen Sie Save (Speichern) aus.

  7. Konfigurieren Sie nach Bedarf weitere Startvorlageneinstellungen und wählen Sie dann Startvorlage erstellen aus. Weitere Informationen finden Sie unter Erstellen einer Startvorlage für eine Auto-Scaling-Gruppe.

AWS CLI

Um eine Startvorlage zu erstellen, die einen Systems Manager Manager-Parameter angibt, können Sie einen der folgenden Beispielbefehle verwenden. Ersetzen Sie jeden user input placeholder durch Ihre Informationen.

Beispiel: Erstellen Sie eine Startvorlage, die einen öffentlichen Parameter „ AWS-own“ angibt

Verwenden Sie die folgende Syntax: resolve:ssm:public-parameter, wobei resolve:ssm das Standardpräfix und public-parameter der Pfad und Name des öffentlichen Parameters ist.

In diesem Beispiel verwendet die Startvorlage einen von AWS-bereitgestellten öffentlichen Parameter, um Instances mit dem neuesten Amazon Linux 2-AMI in dem zu starten AWS-Region , das für Ihr Profil konfiguriert ist.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data file://config.json

Inhalt von config.json:

{ "ImageId":"resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2", "InstanceType":"t2.micro" }

Nachfolgend finden Sie eine Beispielantwort.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-089c023a30example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2022-12-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }
Beispiel: Erstellen Sie eine Startvorlage, die einen Parameter spezifiziert, der im selben Konto gespeichert ist

Verwenden Sie die folgende Syntax: resolve:ssm:parameter-name, wobei resolve:ssm das Standardpräfix und parameter-name der Systems-Manager-Parametername ist.

Im folgenden Beispiel wird eine Startvorlage erstellt, die die AMI-ID aus einem vorhandenen Systems-Manager-Parameter mit dem Namen golden-ami abruft.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling \ --launch-template-data file://config.json

Inhalt von config.json:

{ "ImageId":"resolve:ssm:golden-ami", "InstanceType":"t2.micro" }

Die Standardversion des Parameters ist, falls nicht angegeben, die neueste Version.

Das folgende Beispiel verweist auf eine bestimmte Version des golden-ami-Parameters. Das Beispiel verwendet Version 3 des golden-ami-Parameters, Sie können jedoch jede gültige Versionsnummer verwenden.

{ "ImageId":"resolve:ssm:golden-ami:3", "InstanceType":"t2.micro" }

Das folgende ähnliche Beispiel verweist auf die Parameterbezeichnungprod, die einer bestimmten Version des golden-ami-Parameters zugeordnet ist.

{ "ImageId":"resolve:ssm:golden-ami:prod", "InstanceType":"t2.micro" }

Es folgt eine Beispielausgabe.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-068f72b724example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2022-12-27T17:11:21.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }
Beispiel: Erstellen Sie eine Startvorlage, die einen Parameter angibt, der von einem anderen gemeinsam genutzt wird AWS-Konto

Verwenden Sie die folgende Syntax:resolve:ssm:parameter-ARN, wobei resolve:ssm das Standardpräfix und parameter-ARN der ARN des Systems Manager Manager-Parameters sind.

Im folgenden Beispiel wird eine Startvorlage erstellt, die die AMI-ID aus einem vorhandenen Systems Manager Manager-Parameter mit dem ARN von abruftarn:aws:ssm:us-east-2:123456789012:parameter/MyParameter.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data file://config.json

Inhalt von config.json:

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter", "InstanceType":"t2.micro" }

Die Standardversion des Parameters ist, falls nicht angegeben, die neueste Version.

Das folgende Beispiel verweist auf eine bestimmte Version des MyParameter-Parameters. Das Beispiel verwendet Version 3 des MyParameter-Parameters, Sie können jedoch jede gültige Versionsnummer verwenden.

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter:3", "InstanceType":"t2.micro" }

Das folgende ähnliche Beispiel verweist auf die Parameterbezeichnungprod, die einer bestimmten Version des MyParameter-Parameters zugeordnet ist.

{ "ImageId":"resolve:ssm:arn:aws:ssm:us-east-2:123456789012:parameter/MyParameter:prod", "InstanceType":"t2.micro" }

Nachfolgend finden Sie eine Beispielantwort.

{ "LaunchTemplate": { "LaunchTemplateId": "lt-00f93d4588example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2024-01-08T12:43:21.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } }

Um einen Parameter aus dem Parameterspeicher in einer Startvorlage anzugeben, benötigen Sie die ssm:GetParameters Berechtigung für den angegebenen Parameter. Jeder, der die Startvorlage verwendet, benötigt auch die ssm:GetParameters Erlaubnis, damit der Parameterwert validiert werden kann. Weitere Informationen finden Sie unter Beschränken des Zugriffs auf Systems Manager Manager-Parameter mithilfe von IAM-Richtlinien im AWS Systems Manager Benutzerhandbuch.

Stellen Sie sicher, dass eine Startvorlage die richtige AMI-ID erhält

Verwenden Sie den describe-launch-template-versionsBefehl und fügen Sie die --resolve-alias Option hinzu, um den Parameter in die tatsächliche AMI-ID aufzulösen.

aws ec2 describe-launch-template-versions --launch-template-name my-template-for-auto-scaling \ --versions 1 --resolve-alias

Das Beispiel gibt die AMI-ID für ImageId zurück. Wenn eine Instance mit dieser Startvorlage gestartet wird, wird die AMI-ID zu ami-0ac394d6a3example aufgelöst.

{ "LaunchTemplateVersions": [ { "LaunchTemplateId": "lt-089c023a30example", "LaunchTemplateName": "my-template-for-auto-scaling", "VersionNumber": 1, "CreateTime": "2022-12-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersion": true, "LaunchTemplateData": { "ImageId": "ami-0ac394d6a3example", "InstanceType": "t2.micro", } } ] }

Weitere Informationen zur Angabe eines Systems Manager Manager-Parameters in Ihrer Startvorlage finden Sie unter Verwenden eines Systems Manager Manager-Parameters anstelle einer AMI-ID im EC2 Amazon-Benutzerhandbuch.

Weitere Informationen zum Arbeiten mit Systems-Manager-Parametern finden Sie in den folgenden Referenzmaterialien in der Systems-Manager-Dokumentation.

Einschränkungen

Beachten Sie bei der Arbeit mit Systems Manager Manager-Parametern die folgenden Einschränkungen:

  • Amazon EC2 Auto Scaling unterstützt nur die Angabe von AMI IDs als Parameter.

  • Das Erstellen oder Aktualisieren gemischter Instanzgruppen mit attributbasierter Instanztypauswahl mithilfe einer Startvorlage, die einen Systems Manager Manager-Parameter angibt, wird nicht unterstützt.

  • Wenn Ihre Auto Scaling Scaling-Gruppe eine Startvorlage verwendet, die einen Systems Manager Manager-Parameter spezifiziert, können Sie eine Instance-Aktualisierung nicht mit der gewünschten Konfiguration oder mithilfe von Skip Matching starten.

  • Wenn Ihre Auto Scaling Scaling-Gruppe eine Startvorlage verwendet, die einen Systems Manager Manager-Parameter angibt, werden Warm-Pools nicht unterstützt.

  • Bei jedem Aufruf zur Erstellung oder Aktualisierung Ihrer Auto Scaling-Gruppe löst Amazon EC2 Auto Scaling den Systems Manager Manager-Parameter in der Startvorlage auf. Wenn Sie erweiterte Parameter oder höhere Durchsatzgrenzen verwenden, können die häufigen Aufrufe des Parameterspeichers (d. h. der GetParameters-Vorgang) Ihre Kosten für Systems Manager erhöhen, da Gebühren pro Parameterspeicher-API-Interaktion anfallen. Weitere Informationen finden Sie unter AWS Systems Manager Preise.