Support für Startvorlagen - AWS Batch

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.

Support für Startvorlagen

AWS Batchunterstützt die Verwendung von Amazon EC2 EC2-Startvorlagen mit Ihren EC2-Rechenumgebungen. Mit Startvorlagen können Sie die Standardkonfiguration IhrerAWS Batch Rechenressourcen ändern, ohne benutzerdefinierte AMIs erstellen zu müssen.

Anmerkung

Startvorlagen werden aufAWS Fargate-Ressourcen nicht unterstützt.

Sie müssen eine Startvorlage erstellen, bevor Sie sie mit einer Datenverarbeitungsumgebung verknüpfen können. Sie können eine Launchchchchchchchchchchchvorlage in der Amazon EC2 EC2-Konsole erstellen. Oder Sie können dasAWS CLI oder einAWS SDK verwenden. Die folgende JSON-Datei stellt beispielsweise eine Startvorlage dar, die die Größe des Docker-Datenvolumens für dieAWS Batch Standard-Rechenressource AMI ändert und auch festlegt, dass es verschlüsselt wird.

{ "LaunchTemplateName": "increase-container-volume-encrypt", "LaunchTemplateData": { "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "Encrypted": true, "VolumeSize": 100, "VolumeType": "gp2" } } ] } }

Sie können die vorherige Startvorlage erstellen, indem Sie das JSON in einer Datei speichern, die aufgerufen wird,lt-data.json und den folgendenAWS CLI Befehl ausführen.

aws ec2 --region <region> create-launch-template --cli-input-json file://lt-data.json

Weitere Informationen zu Startvorlagen finden Sie unter Starten einer Instance von einer Startvorlage im Amazon EC2 EC2-Benutzerhandbuch für Linux-Instances.

Wenn Sie eine Startvorlage verwenden, um Ihre Datenverarbeitungsumgebung zu erstellen, können Sie die folgenden vorhandenen Parameter der Datenverarbeitungsumgebung in Ihre Startvorlage verschieben:

Anmerkung

Nehmen wir an, dass einer dieser Parameter (mit Ausnahme der Amazon EC2-Tags) sowohl in der Startvorlage als auch in der Konfiguration der Computerumgebung angegeben werden. Dann haben die Parameter der Rechenumgebung Vorrang. Amazon EC2-Tags werden zwischen der Startvorlage und der Konfiguration der Rechenumgebung zusammengeführt. Wenn es auf dem Tag-Schlüssel zu einer Kollision kommt, hat der Wert in der Konfiguration der Computerumgebung Vorrang.

  • Amazon EC2 EC2-Schlüsselpaar

  • Amazon EC2 EC2-AMI-ID

  • Sicherheitsgruppen-IDs

  • Amazon EC2-Tags

Die folgenden Startvorlagenparameter werden ignoriert von AWS Batch:

  • Instance-Typ (Legen Sie beim Erstellen Ihrer Datenverarbeitungsumgebung die gewünschten Instance-Typen fest.)

  • Instance-Rolle (Legen Sie beim Erstellen Ihrer Datenverarbeitungsumgebung die gewünschte Instance-Rolle fest.)

  • Netzwerkschnittstellen-Subnetze (Legen Sie beim Erstellen Ihrer Datenverarbeitungsumgebung die gewünschten Subnetze fest.)

  • Instance-Markt-Optionen (AWS Batch muss die Spot-Instance-Konfiguration kontrollieren.)

  • API-Beendigung deaktivieren (AWS Batch muss den Instance-Lebenszyklus kontrollieren.)

AWS Batchaktualisiert die Launchchchchchchchchvorlage nur bei Infrastruktur-Updates mit einer neuen Startvorlagenversion. Weitere Informationen finden Sie unter Aktualisierung von Computerumgebungen.

Amazon-EC2-Benutzerdaten in Startvorlagen

Sie können Amazon-EC2-Benutzerdaten in Ihrer Startvorlage angeben, die von cloud-init ausgeführt wird, wenn Ihre Instances starten. Ihre Benutzerdaten können für gängige Konfigurationsszenarien verwendet werden, einschließlich, aber nicht beschränkt auf die folgenden:

Amazon-EC2-Benutzerdaten in Startvorlagen müssen im mehrteiligen MIME-Archiv -Format vorliegen. Dies liegt daran, dass Ihre Benutzerdaten mit anderenAWS Batch Benutzerdaten zusammengeführt werden, die für die Konfiguration Ihrer Rechenressourcen erforderlich sind. Sie können mehrere Benutzerdatenblöcke in einer einzelnen mehrteiligen MIME-Datei kombinieren. So könnten Sie beispielsweise einen Cloud-Boothook, der den Docker -Daemon konfiguriert, mit einem Benutzerdaten-SSkript kombinieren, das Konfigurationsinformationen für den Amazon ECS-Container-Agent schreibt.

Wenn Sie ihn verwendenAWS CloudFormation, kann der AWS::CloudFormation::InitTyp zusammen mit dem Hilfsskript cfn-init verwendet werden, um allgemeine Konfigurationsszenarien auszuführen.

Eine mehrteilige MIME-Datei umfasst folgende Komponenten:

  • Deklaration von Inhaltstyp und Teilgrenze: Content-Type: multipart/mixed; boundary="==BOUNDARY=="

  • Deklaration der MIME-Version: MIME-Version: 1.0

  • Ein oder mehrere Benutzerdatenblöcke mit folgenden Komponenten:

    • Eröffnungsgrenze, die den Beginn eines Benutzerdatenblocks signalisiert:--==BOUNDARY==. Sie müssen die Linie vor dieser Grenze leer lassen.

    • Die Inhaltstypdeklaration für den Block: Content-Type: text/cloud-config; charset="us-ascii". Weitere Informationen zu Inhaltstypen finden Sie in der Cloud-Init-Dokumentation. Sie müssen die Zeile nach der Inhaltstypdeklaration leer lassen.

    • Der Inhalt der Benutzerdaten, z. B. eine Liste von Shell-Befehlen odercloud-init -Direktiven.

  • Abschlussgrenze, die das Ende der mehrteiligen MIME-Datei signalisiert:--==BOUNDARY==--. Sie müssen die Linie vor der letzten Grenze leer lassen.

Im Folgenden finden Sie mehrteilige MIME-MI-Dateien, die Sie verwenden können, um Ihre eigenen zu erstellen.

Anmerkung

Wenn Sie Benutzerdaten zu einer Startvorlage in der Amazon EC2 EC2-Konsole hinzufügen, können Sie sie als Klartext einfügen. Oder Sie können es aus einer Datei hochladen. Wenn Sie dasAWS CLI oder einAWS SDK verwenden, müssen Sie zuerst die Benutzerdatenbase64 codieren und diese Zeichenfolge als Wert desUserData Parameters beim Aufruf einreichen CreateLaunchTemplate, wie in dieser JSON-Datei gezeigt.

{ "LaunchTemplateName": "base64-user-data", "LaunchTemplateData": { "UserData": "ewogICAgIkxhdW5jaFRlbXBsYXRlTmFtZSI6ICJpbmNyZWFzZS1jb250YWluZXItdm9sdW..." } }

Beispiel: Mounten eines vorhandenen Amazon EFS-Dateisystems

Diese mehrteilige MIME-Beispieldatei konfiguriert die Rechenressource für die Installation desamazon-efs-utils Pakets und das Mounten eines vorhandenen Amazon EFS-Dateisystems unter/mnt/efs.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" packages: - amazon-efs-utils runcmd: - file_system_id_01=fs-abcdef123 - efs_directory=/mnt/efs - mkdir -p ${efs_directory} - echo "${file_system_id_01}:/ ${efs_directory} efs tls,_netdev" >> /etc/fstab - mount -a -t efs defaults --==MYBOUNDARY==--

Beispiel: Amazon-ECS-Container-Agent-Konfiguration überschreiben

Diese mehrteilige MIME-Beispieldatei überschreibt die standardmäßigen Cleanup-Einstellungen des Docker-Images für eine Datenverarbeitungsressource.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/x-shellscript; charset="us-ascii" #!/bin/bash echo ECS_IMAGE_CLEANUP_INTERVAL=60m >> /etc/ecs/ecs.config echo ECS_IMAGE_MINIMUM_CLEANUP_AGE=60m >> /etc/ecs/ecs.config --==MYBOUNDARY==--

Beispiel: Mounten eines vorhandenen Amazon FSx for Lustre-Dateisystems

Diese mehrteilige MIME-Beispieldatei konfiguriert die Rechenressource für die Installation deslustre2.10 Pakets aus der Extras-Bibliothek und das Mounten eines vorhandenen FSx for Lustre-Dateisystems unter/scratch und einem Mount-Namen vonfsx. Dieses Beispiel ist für Amazon Linux 2. Installationsanweisungen für andere Linux-Distributionen finden Sie unter Installation des Lustre Clients im Amazon FSx for Lustre-Benutzerhandbuch. Weitere Informationen finden Sie unter Automatisches Mounten Ihres Amazon FSx for Lustre-Benutzerhandbuch.

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/cloud-config; charset="us-ascii" runcmd: - file_system_id_01=fs-0abcdef1234567890 - region=us-east-2 - fsx_directory=/scratch - amazon-linux-extras install -y lustre2.10 - mkdir -p ${fsx_directory} - mount -t lustre ${file_system_id_01}.fsx.${region}.amazonaws.com@tcp:fsx ${fsx_directory} --==MYBOUNDARY==--

Bei den Mitgliedern volumes und mountPoints der Containereigenschaften müssen die Einhängepunkte dem Container zugeordnet sein.

{ "volumes": [ { "host": { "sourcePath": "/scratch" }, "name": "Scratch" } ], "mountPoints": [ { "containerPath": "/scratch", "sourceVolume": "Scratch" } ], }