Verwenden Sie AWS Systems Manager Parameter statt 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 statt 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 System gespeichert ist AWS-Konto, einen Parameter, der von einem anderen gemeinsam genutzt wird AWS-Konto, oder einen öffentlichen Parameter für einen öffentlichen Parameter, der von AMI verwaltet wird, verwenden AWS.

Mit Systems Manager Manager-Parametern können Sie Ihre Auto Scaling Scaling-Gruppen so aktualisieren, dass sie neue verwenden, AMI 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 AMI eine 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 für seinen Wert die ID eines einAMI. Die AMI ID hat ami-<identifier> beispielsweise die Formami-123example456. Die richtige AMI ID hängt vom Instance-Typ ab und davon AWS-Region , in dem Sie Ihre Auto Scaling 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 AMI

Verwenden Sie eine der folgenden Methoden, um eine Startvorlage zu erstellenAMI, die einen Parameter für die 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 ausAMIs.

  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 AMIID oder Systems Manager Manager-Parameterzeichenfolge den Systems Manager Manager-Parameternamen in einem der folgenden Formate ein:

      Um auf einen öffentlichen Parameter zu verweisen:

      • resolve:ssm:public-parameter

      Um auf einen Parameter zu verweisen, der im selben Konto gespeichert ist:

      • resolve:ssm:parameter-name

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

      • resolve:ssm:parameter-name:label

      Um auf einen Parameter zu verweisen, der von einem anderen gemeinsam genutzt wird AWS-Konto:

      • 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 mit Ihren eigenen Informationen.

Beispiel: Erstellen Sie eine Startvorlage, die einen AWSöffentlichen Parameter 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 AMI 2-Betriebssystem 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 angibt, der in demselben 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 Manager-Parameter mit dem Namen abruftgolden-ami.

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 von Golden-Ami Parameter. Das Beispiel verwendet Version 3 von Golden-Ami Parameter, aber Sie können jede gültige Versionsnummer verwenden.

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

Das folgende ähnliche Beispiel verweist auf die Parameterbezeichnung Prod das entspricht einer bestimmten Version von Golden-Ami Parameter.

{ "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 das 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 Wert ARN of 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, aber Sie können 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 Parameterbezeichnung Prod das 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 im AWS Systems Manager Benutzerhandbuch unter Beschränken des Zugriffs auf Systems Manager Manager-Parameter mithilfe von IAM Richtlinien.

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 $Default --resolve-alias

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

{ "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 EC2Amazon-Benutzerhandbuch.

Weitere Informationen zur Arbeit mit Systems Manager Manager-Parametern finden Sie in den folgenden Referenzmaterialien in der Systems Manager 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 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.

  • 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. des GetParameters Vorgangs) Ihre Kosten für Systems Manager erhöhen, da Gebühren pro API Interaktion mit dem Parameterspeicher anfallen. Weitere Informationen finden Sie unter AWS Systems Manager Preise.