

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.

# `AWSSupport-StartEC2RescueWorkflow`
<a name="automation-awssupport-startec2rescueworkflow"></a>

 **Beschreibung** 

Das `AWSSupport-StartEC2RescueWorkflow` Runbook führt das bereitgestellte Base64-kodierte Skript (Bash oder Powershell) auf einer Hilfsinstanz aus, die zur Rettung Ihrer Instanz erstellt wurde. Das Root-Volume Ihrer Instance ist an die Helper-Instance, auch Rescue-Instanz genannt, angehängt und an diese gemountet. EC2 Wenn Ihre Instance unter Windows läuft, geben Sie ein Powershell-Skript an. Verwenden Sie andernfalls Bash. Das Runbook legt einige Umgebungsvariablen fest, die Sie in Ihrem Skript verwenden können. Die Umgebungsvariablen enthalten Informationen über die Eingabe, die Sie bereitgestellt haben, sowie Informationen zu dem Offline-Root-Volume. Das Offline-Volume ist bereits gemountet und kann verwendet werden. Beispiel: Sie können eine Desired State Configuration-Datei zu einem Offline-Windows-Root-Volume oder chroot zu einem Offline-Linux-Root-Volume speichern und eine Offline-Wiederherstellung durchführen.

[Führen Sie diese Automatisierung aus (Konsole)](https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-StartEC2RescueWorkflow)

**Wichtig**  
Amazon EC2 EC2-Instances, die über Marketplace Amazon Machine Images (AMIs) erstellt wurden, werden von dieser Automatisierung nicht unterstützt.

 **Zusätzliche Informationen** 

Um ein Skript mit base64 zu kodieren, können Sie PowerShell oder Bash verwenden. Powershell:

```
[System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes([System.IO.File]::ReadAllText('PATH_TO_FILE')))
```

Bash:

```
base64 PATH_TO_FILE
```

Hier sehen Sie eine Liste der Umgebungsvariablen, die Sie in Ihren Offline-Skripts verwenden können, je nach Ziel-Betriebssystem.

Windows:


****  

| Variable | Description | Beispielwert | 
| --- | --- | --- | 
|  \$1env: RESCUE\$1ACCOUNT\$1ID EC2  |  \$1\$1 global:ACCOUNT\$1ID \$1\$1  |  123456789012  | 
|  \$1env: EC2 RESCUE\$1DATE  |  \$1\$1 global:DATE \$1\$1  |  2018-09-07  | 
|  \$1env: EC2 RESCUE\$1DATE\$1TIME  |  \$1\$1 global:DATE\$1TIME \$1\$1  |  2018-09-07\$118.09.59  | 
|  \$1env: EC2 RESCUE\$1 RW\$1DIR EC2  |  EC2Installationspfad für Rescue für Windows  |  C:\$1Program Files\$1 Amazon\$1 EC2 Rescue  | 
|  \$1env: EC2 RESCUE\$1 RW\$1DIR EC2  |  EC2Installationspfad für Rescue für Windows  |  C:\$1Program Files\$1 Amazon\$1 EC2 Rescue  | 
|  \$1env: RESCUE\$1EXECUTION\$1ID EC2  |  \$1\$1 automation:EXECUTION\$1ID \$1\$1  |  7ef8008e-219b-4aca-8bb5-65e2e898e20b  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1CURRENT\$1CONTROL\$1SET  |  Offline Windows Current Control Set-Pfad  |  `HKLM:\AWSTempSystem\ControlSet001`  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1DRIVE  |  Offline-Windows-Laufwerkbuchstabe  |  D:\$1  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1EBS\$1DEVICE  |  Offline-Root-Volume-EBS-Gerät  |  xvdf  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1KERNEL\$1VER  |  Offline-Windows-Kernel-Version  |  6.1.7601.24214  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1OS\$1ARCHITECTURE  |  Offline-Windows-Architektur  |  AMD64  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1OS\$1CAPTION  |  Offline-Windows-Beschriftung  |  Windows Server 2008 R2 Datacenter  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1OS\$1TYPE  |  Offline-Windows-Betriebssystemtyp  |  Server  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1PROGRAM\$1FILES\$1DIR  |  Offline-Windows-Programmdateien-Verzeichnispfad  |  D:\$1Program Files  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1PROGRAM\$1FILES\$1X86\$1DIR  |  Offline-Windows-Programmdateien-x86-Verzeichnispfad  |  D:\$1Program Files (x86)  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1REGISTRY\$1DIR  |  Offline-Windows-Registry-Verzeichnispfad  |  D:\$1Windows\$1System32\$1config  | 
|  \$1env: EC2 RESCUE\$1OFFLINE\$1SYSTEM\$1ROOT  |  Offline-Windows-Systemstamm-Verzeichnispfad  |  D:\$1Windows  | 
|  \$1env: EC2 RESCUE\$1REGION  |  \$1\$1 global:REGION \$1\$1  |  us-west-1  | 
|  \$1env: EC2 RESCUE\$1S3\$1BUCKET  |  \$1\$1S3\$1\$1 BucketName   |  amzn-s3-Demo-Bucket  | 
|  \$1env: RESCUE\$1S3\$1PREFIX EC2  |  \$1\$1 S3Prefix \$1\$1  |  myprefix/  | 
|  \$1env: EC2 RESCUE\$1SOURCE\$1INSTANCE  |  \$1\$1 InstanceId \$1\$1  |  i-abcdefgh123456789  | 
|  \$1skript: EC2 RESCUE\$1OFFLINE\$1WINDOWS\$1INSTALL  |  Offline-Windows-Installations-Metadaten  |  Customer PowerShell-Objekt  | 

Linux:


****  

| Variable | Description | Beispielwert | 
| --- | --- | --- | 
|  EC2RESCUE\$1ACCOUNT-ID  |  \$1\$1 global:ACCOUNT\$1ID \$1\$1  |  123456789012  | 
|  EC2RESCUE\$1DATE  |  \$1\$1 global:DATE \$1\$1  |  2018-09-07  | 
|  EC2RETTUNGSDATUM\$1UHRZEIT  |  \$1\$1 global:DATE\$1TIME \$1\$1  |  2018-09-07\$118.09.59  | 
|  EC2RESCUE\$1RL\$1DIR EC2  |  EC2Installationspfad von Rescue für Linux  |  /usr/local/ec2rl-1.1.3  | 
|  EC2RESCUE\$1EXECUTION\$1ID  |  \$1\$1 automation:EXECUTION\$1ID \$1\$1  |  7ef8008e-219b-4aca-8bb5-65e2e898e20b  | 
|  EC2RESCUE\$1OFFLINE-GERÄT  |  Offline-Gerätename  |  /dev/xvdf1  | 
|  EC2RESCUE\$1OFFLINE\$1EBS\$1DEVICE  |  Offline-Root-Volume-EBS-Gerät  |  /dev/sdf  | 
|  EC2RESCUE\$1OFFLINE\$1SYSTEM\$1ROOT  |  Offline-Root-Volume-Mounting-Punkt  |  /mnt/mount  | 
|  EC2RESCUE\$1PYTHON  |  Python-Version  |  python2.7  | 
|  EC2RESCUE\$1REGION  |  \$1\$1 global:REGION \$1\$1  |  us-west-1  | 
|  EC2RESCUE\$1S3\$1BUCKET  |  \$1\$1S3\$1\$1 BucketName   |  amzn-s3-Demo-Bucket  | 
|  EC2RESCUE\$1S3\$1PRÄFIX  |  \$1\$1 S3Prefix \$1\$1  |  myprefix/  | 
|  EC2RESCUE\$1SOURCE\$1INSTANZ  |  \$1\$1 InstanceId \$1\$1  |  i-abcdefgh123456789  | 

**Typ des Dokuments**

Automatisierung

**Eigentümer**

Amazon

**Plattformen**

LinuxmacOS, Windows

**Parameter**
+ AMIPrefix

  Typ: Zeichenfolge

  Standard: `AWSSupport-EC2Rescue`

  Beschreibung: (Optional) Ein Präfix für den Backup-AMI-Namen.
+ AutomationAssumeRole

  Typ: Zeichenfolge

  Beschreibung: (Optional) Der Amazon-Ressourcenname (ARN) der AWS Identity and Access Management (IAM) -Rolle, mit der Systems Manager Automation die Aktionen in Ihrem Namen ausführen kann. Wenn keine Rolle angegeben ist, verwendet Systems Manager Automation die Berechtigungen des Benutzers, der dieses Runbook startet.
+ CreatePostEC2RescueBackup

  Typ: Zeichenfolge

  Zulässige Werte: true \$1 false

  Standard: false

  Beschreibung: (Optional) Stellen Sie es auf ein, `true` um ein AMI von InstanceId nach der Ausführung des Skripts zu erstellen, bevor Sie es starten. Das AMI bleibt nach Abschluss der Automatisierung erhalten. Es liegt in Ihrer Verantwortung, den Zugriff auf das AMI zu gewährleisten oder es zu löschen.
+ CreatePreEC2RescueBackup

  Typ: Zeichenfolge

  Zulässige Werte: true \$1 false

  Standard: false

  Beschreibung: (Optional) Stellen Sie es auf ein, `true` um InstanceId vor der Ausführung des Skripts ein AMI von zu erstellen. Das AMI bleibt nach Abschluss der Automatisierung erhalten. Es liegt in Ihrer Verantwortung, den Zugriff auf das AMI zu gewährleisten oder es zu löschen. 
+ EC2RescueInstanceType

  Typ: Zeichenfolge

  Gültige Werte: t2.small \$1 t2.medium \$1 t2.large \$1 t3.small \$1 t3.medium \$1 t3.large \$1 i3.large

  Standard: t3.medium

  Beschreibung: (Optional) Der EC2-Instance-Typ für die Rescue-Instance. EC2
+ InstanceId

  Typ: Zeichenfolge

  Beschreibung: (Erforderlich) ID Ihrer EC2-Instance. WICHTIG: Die AWS Systems Manager Automatisierung stoppt diese Instanz. Auf den Instance-Speichervolumes gespeicherte Daten gehen verloren. Die öffentliche IP-Adresse ändert sich, wenn Sie keine Elastic IP verwenden.
+ OfflineScript

  Typ: Zeichenfolge

  Beschreibung: (Erforderlich) Base64-kodiertes Skript zur Ausführung gegen die Helper-Instance. Verwenden Sie Bash, wenn Ihre Quellinstanz Linux und PowerShell Windows ist.
+ S3 BucketName

  Typ: Zeichenfolge

  Beschreibung: (Optional) Name des S3-Buckets in Ihrem Konto, in den Sie die Protokolle zur Fehlerbehebung hochladen möchten. Stellen Sie sicher, dass die Bucket-Richtlinie Parteien, die keinen Zugriff auf die gesammelten Protokolle benötigen, keine unnötigen read/write Berechtigungen gewährt.
+ S3Prefix

  Typ: Zeichenfolge

  Standard: `AWSSupport-EC2Rescue`

  Beschreibung: (Optional) Ein Präfix für die S3-Protokolle.
+ SubnetId

  Typ: Zeichenfolge

  Standard: SelectedInstanceSubnet

  Beschreibung: (Optional) Die Subnetz-ID für die EC2 Rescue-Instanz. Standardmäßig wird dasselbe Subnetz verwendet, in dem sich die bereitgestellte Instance befindet. WICHTIG: Wenn Sie ein benutzerdefiniertes Subnetz angeben, muss es sich in derselben Availability Zone befinden wie InstanceId und es muss den Zugriff auf die SSM-Endpunkte ermöglichen.
+ UniqueId

  Typ: Zeichenfolge

  Standard: \$1\$1 automation:EXECUTION\$1ID \$1\$1

  Beschreibung: (Optional) Eine eindeutige Kennung für die Automatisierung.

**Erforderliche IAM-Berechtigungen**

Der `AutomationAssumeRole` Parameter erfordert die folgenden Aktionen, um das Runbook erfolgreich zu verwenden.

Es wird empfohlen, dass dem Benutzer, der die Automatisierung ausführt, die von **Amazon SSMAutomation Role** IAM verwaltete Richtlinie beigefügt ist. Zusätzlich zu dieser Richtlinie benötigt der Benutzer:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lambda:InvokeFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction"
            ],
            "Resource": "arn:aws:lambda:*:111122223333:function:AWSSupport-EC2Rescue-*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::awssupport-ssm.*/*.template",
                "arn:aws:s3:::awssupport-ssm.*/*.zip"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:CreateRole",
                "iam:CreateInstanceProfile",
                "iam:GetRole",
                "iam:GetInstanceProfile",
                "iam:PutRolePolicy",
                "iam:DetachRolePolicy",
                "iam:AttachRolePolicy",
                "iam:PassRole",
                "iam:AddRoleToInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DeleteInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/AWSSupport-EC2Rescue-*",
                "arn:aws:iam::111122223333:instance-profile/AWSSupport-EC2Rescue-*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "lambda:CreateFunction",
                "ec2:CreateVpc",
                "ec2:ModifyVpcAttribute",
                "ec2:DeleteVpc",
                "ec2:CreateInternetGateway",
                "ec2:AttachInternetGateway",
                "ec2:DetachInternetGateway",
                "ec2:DeleteInternetGateway",
                "ec2:CreateSubnet",
                "ec2:DeleteSubnet",
                "ec2:CreateRoute",
                "ec2:DeleteRoute",
                "ec2:CreateRouteTable",
                "ec2:AssociateRouteTable",
                "ec2:DisassociateRouteTable",
                "ec2:DeleteRouteTable",
                "ec2:CreateVpcEndpoint",
                "ec2:DeleteVpcEndpoints",
                "ec2:ModifyVpcEndpoint",
                "ec2:Describe*"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

 **Dokumentschritte** 

1. `aws:executeAwsApi`— Beschreiben Sie die bereitgestellte Instanz

1. `aws:executeAwsApi`- Beschreiben Sie das Root-Volume der bereitgestellten Instanz

1. `aws:assertAwsResourceProperty`— Vergewissern Sie sich, dass der Gerätetyp des Root-Volumes EBS ist

1. `aws:assertAwsResourceProperty`- Stellen Sie sicher, dass das Root-Volume nicht verschlüsselt ist

1. `aws:assertAwsResourceProperty`- Überprüfen Sie die angegebene Subnetz-ID

   1. (Verwenden Sie das aktuelle Instanz-Subnetz) — Wenn \$1 SubnetId = SelectedInstanceSubnet \$1, dann starten Sie, `aws:createStack` um den EC2 Rescue-Stack bereitzustellen CloudFormation 

   1. (Neue VPC erstellen) — Wenn \$1 SubnetId = CreateNew VPC\$1, dann ausführen, `aws:createStack` um den Rescue-Stack bereitzustellen EC2 CloudFormation 

   1. (Verwenden eines benutzerdefinierten Subnetzes) – In allen anderen Fällen:

      `aws:assertAwsResourceProperty`- Überprüfen Sie, ob sich das angegebene Subnetz in derselben Availability Zone wie die bereitgestellte Instanz befindet

      `aws:createStack`- Stellen Sie den EC2 Rescue-Stack CloudFormation bereit

1. `aws:invokeLambdaFunction`- Führen Sie eine zusätzliche Eingabevalidierung durch

1. `aws:executeAwsApi`- Aktualisieren Sie den EC2 CloudFormation Rescue-Stack, um die EC2 Rescue-Helper-Instanz zu erstellen

1. `aws:waitForAwsResourceProperty`- Warten Sie, bis das EC2 CloudFormation Rescue-Stack-Update abgeschlossen ist

1. `aws:executeAwsApi`- Beschreiben Sie die EC2 CloudFormation Rescue-Stack-Ausgabe, um die EC2 Rescue-Helper-Instanz-ID zu erhalten

1. `aws:waitForAwsResourceProperty`- Warten Sie, bis die EC2 Rescue-Helper-Instanz zu einer verwalteten Instanz wird

1. `aws:changeInstanceState`- Stoppt die bereitgestellte Instanz

1. `aws:changeInstanceState`- Stoppt die bereitgestellte Instanz

1. `aws:changeInstanceState`- Erzwingt das Stoppen der bereitgestellten Instanz

1. `aws:assertAwsResourceProperty`- Überprüfen Sie den CreatePre EC2 RescueBackup Eingabewert

   1. (EC2Pre-Rescue-Backup erstellen) — Wenn \$1 CreatePre EC2 RescueBackup = true\$1

   1. `aws:executeAwsApi`- Erstellen Sie ein AMI-Backup der bereitgestellten Instanz

   1. `aws:createTags`- Taggen Sie das AMI-Backup

1. `aws:runCommand`- Installieren Sie EC2 Rescue auf der EC2 Rescue-Helper-Instanz

1. `aws:executeAwsApi`- Trennen Sie das Root-Volume von der bereitgestellten Instanz

1. `aws:assertAwsResourceProperty`- Überprüfen Sie die bereitgestellte Instanzplattform

   1. (Instance ist Windows):

      `aws:executeAwsApi`- Hängen Sie das Root-Volume als \$1xvdf\$1 an die EC2 Rescue-Helper-Instanz an

      `aws:sleep`- Schlafen Sie 10 Sekunden

      `aws:runCommand`- Führen Sie das bereitgestellte Offline-Skript in Powershell aus

   1. (Instance ist Linux):

      `aws:executeAwsApi`- Hängen Sie das Root-Volume als \$1/dev/sdf\$1 an die EC2 Rescue-Helper-Instanz an

      `aws:sleep`- Schlafen Sie 10 Sekunden

      `aws:runCommand`- Führen Sie das bereitgestellte Offline-Skript in Bash aus

1. `aws:changeInstanceState`- Stoppen Sie die EC2 Rescue-Helper-Instanz

1. `aws:changeInstanceState`- Erzwingt das Stoppen der EC2 Rescue-Helper-Instanz

1. `aws:executeAwsApi`- Trennen Sie das Root-Volume von der EC2 Rescue-Helper-Instanz

1. `aws:executeAwsApi`- Hängen Sie das Root-Volume wieder an die bereitgestellte Instanz an

1. `aws:assertAwsResourceProperty`- Überprüfen Sie den CreatePost EC2 RescueBackup Eingabewert

   1. (Backup nach dem EC2 Rescue erstellen) — Wenn \$1 CreatePost EC2 RescueBackup = true\$1

   1. `aws:executeAwsApi`- Erstellen Sie ein AMI-Backup der bereitgestellten Instanz

   1. `aws:createTags`- Taggen Sie das AMI-Backup

1. `aws:executeAwsApi`— Stellt den ursprünglichen Status „Löschen bei Beendigung“ für das Root-Volume der bereitgestellten Instanz wieder her

1. `aws:changeInstanceState`- Stellt den ursprünglichen Zustand der bereitgestellten Instanz wieder her (laufend/gestoppt)

1. `aws:deleteStack`- Löscht den Rescue-Stack EC2 CloudFormation 

 **Ausgaben** 

runScriptForLinux.Ausgabe

runScriptForWindows.Ausgabe

preScriptBackup.ImageId

postScriptBackup.ImageId