

Version 5 (V5) von AWS -Tools für PowerShell wurde veröffentlicht\$1

Informationen zu wichtigen Änderungen und zur Migration Ihrer Anwendungen finden Sie im [Migrationsthema](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html).

 [https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html)

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.

# AWS Anrufdienste in der AWS -Tools für PowerShell
<a name="pstools-using"></a>

Dieser Abschnitt enthält Beispiele für die Verwendung von für den AWS -Tools für PowerShell Zugriff auf AWS Dienste. Diese Beispiele veranschaulichen, wie die Cmdlets verwendet werden, um tatsächliche AWS Aufgaben auszuführen. Diese Beispiele basieren auf Cmdlets, die von Tools for bereitgestellt werden. PowerShell in der [AWS -Tools für PowerShell -Cmdlet-Referenz](https://docs.aws.amazon.com/powershell/v5/reference/) finden Sie, welche Cmdlets verfügbar sind.

Weitere AWS -Tools für PowerShell Beispiele finden Sie im [Codebeispiele](powershell_code_examples.md) Kapitel.

## PowerShell Kodierung der Dateiverkettung
<a name="powershell-file-concatenation-encoding"></a>

Einige Cmdlets in der AWS -Tools für PowerShell Bearbeitung vorhandener Dateien oder Datensätze, die Sie in haben. AWS Ein Beispiel ist`Edit-R53ResourceRecordSet`, das die [ChangeResourceRecordSets](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html)API für Amazon Route 53 aufruft.

Wenn Sie Dateien in PowerShell 5.1 oder älteren Versionen bearbeiten oder verketten, PowerShell codiert die Ausgabe in UTF-16, nicht in UTF-8. Dies kann unerwünschte Zeichen hinzufügen und zu ungültigen Ergebnissen führen. Eine Hexadezimale-Editor kann die unerwünschten Zeichen anzeigen.

Um zu vermeiden, dass die Dateiausgabe in UTF-16 konvertiert wird, können Sie Ihren Befehl an das `Out-File` Cmdlet weiterleiten und die UTF-8-Kodierung PowerShell angeben, wie im folgenden Beispiel gezeigt:

```
PS > *some file concatenation command* | Out-File filename.txt -Encoding utf8
```

Wenn Sie AWS CLI Befehle von der PowerShell Konsole aus ausführen, gilt dasselbe Verhalten. Sie können die Ausgabe eines AWS CLI Befehls über die Pipeline `Out-File` an die PowerShell Konsole weiterleiten. Andere Cmdlets, wie z. B. `Export-Csv` oder `Export-Clixml`, haben auch einen `Encoding`-Parameter. Eine vollständige Liste der Cmdlets mit `Encoding`-Parameter, mit denen Sie die Codierung der Ausgabe einer verketteten Datei korrigieren können, erhalten Sie durch Ausführung des folgenden Befehls.

```
PS > Get-Command -ParameterName "Encoding"
```

**Anmerkung**  
PowerShell 6.0 und neuere Versionen, einschließlich PowerShell Core, behalten automatisch die UTF-8-Kodierung für die Ausgabe verketteter Dateien bei.

## Zurückgegebene Objekte für die Tools PowerShell
<a name="returned-objects-for-the-powershell-tools"></a>

Um den Nutzen in einer systemeigenen PowerShell Umgebung zu AWS -Tools für PowerShell erhöhen, handelt es sich bei dem von einem AWS -Tools für PowerShell Cmdlet zurückgegebenen Objekt um ein .NET-Objekt und nicht um das JSON-Textobjekt, das normalerweise von der entsprechenden API im SDK zurückgegeben wird. AWS So gibt beispielsweise `Get-S3Bucket` eine `Buckets`-Sammlung und kein Amazon-S3-JSON-Antwortobjekt aus. Die `Buckets` Sammlung kann in die PowerShell Pipeline aufgenommen werden und es kann auf geeignete Weise mit ihr interagiert werden. Entsprechend gibt `Get-EC2Instance` eine `Reservation`-.NET-Objektsammlung und kein `DescribeEC2Instances`-JSON-Ergebnisobjekt aus. Dieses Verhalten ist beabsichtigt und ermöglicht eine konsistentere AWS -Tools für PowerShell Benutzererfahrung mit PowerShell idiomatischen Inhalten.

Die tatsächlichen Service-Antworten stehen Ihnen zur Verfügung, wenn Sie sie benötigen. Sie werden als `note`-Eigenschaften auf den zurückgegebenen Objekten gespeichert. Für API-Aktionen, die das Paging über `NextToken`-Felder unterstützen, werden sie außerdem als `note`-Eigenschaften angefügt.

## [Amazon EC2](pstools-ec2.md)
<a name="using-ec2"></a>

In diesem Abschnitt werden die erforderlichen Schritte zum Starten einer Amazon-EC2-Instance beschrieben, z. B.:
+ Rufen Sie eine Liste von Amazon Machine Images ab (AMIs).
+ Erstellen Sie ein Schlüsselpaar für die SSH-Authentifizierung.
+ Erstellen und konfigurieren Sie eine Amazon-EC2-Sicherheitsgruppe.
+ Starten der Instance und Abrufen der Instance-Informationen

## [Amazon S3](pstools-s3.md)
<a name="using-s3"></a>

Der Abschnitt führt Sie durch die erforderlichen Schritte zum Erstellen einer statischen Website, die in Amazon S3 gehostet wird. Er zeigt Folgendes:
+ Erstellen und Löschen von Amazon-S3-Buckets.
+ Hochladen von Dateien als Objekte in einen Amazon-S3-Bucket.
+ Löschen von Objekten aus einem Amazon-S3-Bucket.
+ Aktivieren eines Amazon-S3-Buckets als Website.

## [AWS Lambda und AWS -Tools für PowerShell](pstools-lambda.md)
<a name="using-lambda"></a>

Dieser Abschnitt bietet einen kurzen Überblick über das PowerShell Modul AWS Lambda Tools for und beschreibt die erforderlichen Schritte zur Einrichtung des Moduls.

## [Amazon SNS und Amazon SQS](pstools-sqs-queue-sns-topic.md)
<a name="using-sns"></a>

In diesem Abschnitt werden die Schritte beschrieben, die zum Abonnieren einer Amazon-SQS-Warteschlange für ein Amazon-SNS-Thema erforderlich sind. Er zeigt Folgendes:
+ Erstellen Sie ein Amazon-SNS-Thema.
+ Erstellen einer Amazon SQS-Warteschlange
+ Abonnieren der -Warteschlange für das -Thema
+ Senden einer Mitteilung an das Thema
+ Empfangen einer Mitteilung aus der Warteschlange

## [CloudWatch](pstools-cw.md)
<a name="using-cw"></a>

In diesem Abschnitt finden Sie ein Beispiel zum Veröffentlichen benutzerdefinierter Daten in CloudWatch.
+ Veröffentlichen Sie eine benutzerdefinierte Metrik in Ihrem CloudWatch Dashboard.

## Weitere Informationen finden Sie unter:
<a name="see-also"></a>
+  [Konfiguration und Verwendung des AWS -Tools für PowerShell](pstools-getting-started.md) 

## Topics
<a name="w2aac13c23"></a>
+ [Amazon S3 und Tools für Windows PowerShell](pstools-s3.md)
+ [Amazon EC2 und Tools für Windows PowerShell](pstools-ec2.md)
+ [AWS Lambda und AWS -Tools für PowerShell](pstools-lambda.md)
+ [Amazon SQS, Amazon SNS und Tools für Windows PowerShell](pstools-sqs-queue-sns-topic.md)
+ [CloudWatch von der AWS Tools for Windows PowerShell](pstools-cw.md)
+ [Verwenden des ClientConfig Parameters in Cmdlets](pstools-clientconfig.md)

# Amazon S3 und Tools für Windows PowerShell
<a name="pstools-s3"></a>

In diesem Abschnitt erstellen wir eine statische Website mithilfe AWS Tools for Windows PowerShell von Amazon S3 und CloudFront. Während des Vorgangs werden verschiedene gebräuchliche Aufgaben mit diesen Services gezeigt. Diese Schritte orientieren sich am Handbuch Erste Schritte für das [Hosten einer statischen Website](https://aws.amazon.com/getting-started/projects/host-static-website/), in der ein ähnlicher Prozess unter Verwendung der [AWS -Managementkonsole](https://console.aws.amazon.com/s3/home) beschrieben wird.

Bei den hier gezeigten Befehlen wird davon ausgegangen, dass Sie Standardanmeldedaten und eine Standardregion für Ihre PowerShell Sitzung festgelegt haben. Daher werden beim Aufrufen der Cmdlets keine Anmeldeinformationen und Regionen übergeben.

**Anmerkung**  
Derzeit gibt es keine Amazon S3 S3-API zum Umbenennen eines Buckets oder Objekts und daher kein einzelnes Tools for PowerShell Windows-Cmdlet für die Ausführung dieser Aufgabe. Um ein Objekt in S3 umzubenennen, empfehlen wir, das Objekt in ein Objekt mit einem neuen Namen zu kopieren, indem Sie das [Copy-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Copy-S3Object.html)Cmdlet ausführen, und dann das ursprüngliche Objekt zu löschen, indem Sie das Cmdlet ausführen. [Remove-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Remove-S3Object.html)

**Weitere Informationen finden Sie auch unter**
+  [AWS Anrufdienste in der AWS -Tools für PowerShell](pstools-using.md) 
+  [Hosten einer statischen Website auf Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) 
+  [Amazon S3-Konsole](https://console.aws.amazon.com/s3/home) 

**Topics**
+ [Erstellen eines Amazon-S3-Buckets, Verifizieren der Region und (optional) Entfernen des Buckets](pstools-s3-bucket-create.md)
+ [Konfigurieren eines Amazon-S3-Buckets als Website und Aktivieren der Protokollierung](pstools-s3-create-website.md)
+ [Hochladen von Objekten in einen Amazon-S3-Bucket](pstools-s3-upload-object.md)
+ [Löschen von Amazon-S3-Objekten und -Buckets](pstools-s3-delete-website.md)
+ [Hochladen von Inline-Textinhalt nach Amazon S3](pstools-s3-upload-in-line-text.md)

# Erstellen eines Amazon-S3-Buckets, Verifizieren der Region und (optional) Entfernen des Buckets
<a name="pstools-s3-bucket-create"></a>

Mit dem `New-S3Bucket`-Cmdlet können Sie einen neuen Amazon-S3-Bucket erstellen. In den folgenden Beispielen wird ein Bucket mit dem Namen `website-example` erstellt. Der Name des Buckets muss regionsübergreifend eindeutig sein. Im Beispiel wird der Bucket in der Region `us-west-1` erstellt.

```
PS > New-S3Bucket -BucketName website-example -Region us-west-2

CreationDate         BucketName
------------         ----------
8/16/19 8:45:38 PM   website-example
```

Die Region, in der sich der Bucket befindet, kann mit dem Cmdlet `Get-S3BucketLocation` ermittelt werden.

```
PS > Get-S3BucketLocation -BucketName website-example

Value
-----
us-west-2
```

Wenn Sie dieses Tutorial abgeschlossen haben, können Sie diesen Bucket mithilfe der folgenden Zeile entfernen. Wir empfehlen aber, den Bucket nicht zu entfernen, da er in späteren Beispielen verwendet wird.

```
PS > Remove-S3Bucket -BucketName website-example
```

Beachten Sie, dass das Entfernen eines Buckets einige Zeit in Anspruch nehmen kann. Wenn Sie versuchen, sofort einen Bucket mit dem gleichen Namen zu erstellen, kann das Cmdlet `New-S3Bucket` fehlschlagen, bis der alte Bucket vollständig verschwunden ist.

## Weitere Informationen finden Sie unter:
<a name="pstools-seealso-s3-bucket-create"></a>
+  [AWS Anrufdienste in der AWS -Tools für PowerShell](pstools-using.md) 
+  [PUT Bucket (Amazon S3-Servicereferenz)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUT.html) 
+  [AWS PowerShell Regionen für Amazon S3](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) 

# Konfigurieren eines Amazon-S3-Buckets als Website und Aktivieren der Protokollierung
<a name="pstools-s3-create-website"></a>

Verwenden Sie das Cmdlet `Write-S3BucketWebsite`, um einen Amazon-S3-Bucket als statische Website zu konfigurieren. Das folgende Beispiel gibt einen Namen der `index.html`-Datei für die Standardwebseite mit dem Inhalt und einen Namen für die `error.html`-Datei für die Standardwebseite mit den Fehlern an. Beachten Sie, dass dieses Cmdlet diese Seiten nicht erstellt. Sie müssen [als Amazon S3-Objekte hochgeladen](pstools-s3-upload-object.md) werden.

```
PS > Write-S3BucketWebsite -BucketName website-example -WebsiteConfiguration_IndexDocumentSuffix index.html -WebsiteConfiguration_ErrorDocument error.html
RequestId      : A1813E27995FFDDD
AmazonId2      : T7hlDOeLqA5Q2XfTe8j2q3SLoP3/5XwhUU3RyJBGHU/LnC+CIWLeGgP0MY24xAlI
ResponseStream :
Headers        : {x-amz-id-2, x-amz-request-id, Content-Length, Date...}
Metadata       : {}
ResponseXml    :
```

## Weitere Informationen finden Sie unter:
<a name="pstools-seealso-s3-create-website"></a>
+  [AWS Anrufdienste in der AWS -Tools für PowerShell](pstools-using.md) 
+  [Put Bucket Website (Amazon S3-API-Referenz)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html) 
+  [Put Bucket ACL (Amazon S3-API-Referenz)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html) 

# Hochladen von Objekten in einen Amazon-S3-Bucket
<a name="pstools-s3-upload-object"></a>

Verwenden Sie das Cmdlet `Write-S3Object` zum Hochladen von Dateien (als Objekte) aus dem lokalen Dateisystem in einen Amazon-S3-Bucket. Das folgende Beispiel erstellt zwei einfache HTML-Dateien, lädt sie in einen Amazon-S3-Bucket hoch und verifiziert die hochgeladenen Objekte. Der Parameter `-File` von `Write-S3Object` gibt den Namen der Datei im lokalen Dateisystem an. Der Parameter `-Key` gibt den Namen an, den das entsprechende Objekt in Amazon S3 hat.

Amazon leitet "content-type" der Objekte aus den Dateinamenserweiterungen – in diesem Fall ".html" – ab.

```
PS > # Create the two files using here-strings and the Set-Content cmdlet
PS > $index_html = @"
>> <html>
>>   <body>
>>     <p>
>>       Hello, World!
>>     </p>
>>   </body>
>> </html>
>> "@
>>
PS > $index_html | Set-Content index.html
PS > $error_html = @"
>> <html>
>>   <body>
>>     <p>
>>       This is an error page.
>>     </p>
>>   </body>
>> </html>
>> "@
>>
>>$error_html | Set-Content error.html
>># Upload the files to Amazon S3 using a foreach loop
>>foreach ($f in "index.html", "error.html") {
>> Write-S3Object -BucketName website-example -File $f -Key $f -CannedACLName public-read
>> }
>>
PS > # Verify that the files were uploaded
PS > Get-S3BucketWebsite -BucketName website-example

IndexDocumentSuffix                                         ErrorDocument
-------------------                                         -------------
index.html                                                  error.html
```

 *Vordefinierte ACL-Optionen* 

Die Werte für die Angabe von „ ACLs Gespeichert“ mit den Tools für Windows PowerShell entsprechen denen, die von der verwendet werden AWS SDK für .NET. Beachten Sie jedoch, dass diese Werte sich von den Werten unterscheiden, die die Amazon-S3`Put Object`-Aktion verwendet. Die Tools für Windows PowerShell unterstützen die folgenden gespeicherten Optionen ACLs:
+ NoACL
+ private
+ public-read
+ public-read-write
+ aws-exec-read
+ authenticated-read
+ bucket-owner-read
+ bucket-owner-full-control
+ log-delivery-write

Weitere Informationen zu diesen vordefinierten ACL-Einstellungen finden Sie unter [Zugriffskontrolllisten (ACL) – Übersicht](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).

## Hinweis zu mehrteiligen Uploads
<a name="note-regarding-multipart-upload"></a>

Wenn Sie die Amazon-S3-API in eine Datei mit mehr als 5 GB hochladen, müssen Sie den mehrteiligen Upload nutzen. Das von den Tools für Windows bereitgestellte `Write-S3Object` Cmdlet PowerShell kann jedoch Dateiuploads, die größer als 5 GB sind, transparent verarbeiten.

### Testen der Website
<a name="pstools-amazon-s3-test-website"></a>

An dieser Stelle können Sie die Website testen, indem Sie sie mit einem Browser aufrufen. URLs für statische Websites, die in Amazon S3 gehostet werden, folgen Sie einem Standardformat.

```
http://<bucket-name>.s3-website-<region>.amazonaws.com
```

Zum Beispiel:

```
http://website-example.s3-website-us-west-1.amazonaws.com
```

### Weitere Informationen finden Sie unter:
<a name="pstools-seealso-amazon-s3-test-website"></a>
+  [AWS Anrufdienste in der AWS -Tools für PowerShell](pstools-using.md) 
+  [Put Object (Amazon S3-API-Referenz)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html) 
+  [ ACLs Gespeichert (Amazon S3 S3-API-Referenz)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ACLOverview.html#CannedACL) 

# Löschen von Amazon-S3-Objekten und -Buckets
<a name="pstools-s3-delete-website"></a>

In diesem Abschnitt wird beschrieben, wie Sie die in den vorhergehenden Abschnitten erstellte Website löschen. Sie können einfach die Objekte für die HTML-Dateien und danach den Amazon-S3-Bucket für die Website löschen.

Führen Sie das Cmdlet `Remove-S3Object` aus, um die Objekte für die HTML-Dateien im Amazon-S3-Bucket zu löschen.

```
PS > foreach ( $obj in "index.html", "error.html" ) {
>> Remove-S3Object -BucketName website-example -Key $obj
>> }
>> 
IsDeleteMarker
--------------
False
```

Der Rückgabewert `False` ist ein Artefakt, das sich aus der Art der Anforderungsverarbeitung durch Amazon S3 ergibt. In diesem Kontext weist der Wert nicht auf ein Problem hin.

Jetzt können Sie das Cmdlet `Remove-S3Bucket` ausführen, um den nun leeren Amazon-S3-Bucket für die Website zu löschen.

```
PS > Remove-S3Bucket -BucketName website-example

RequestId      : E480ED92A2EC703D
AmazonId2      : k6tqaqC1nMkoeYwbuJXUx1/UDa49BJd6dfLN0Ls1mWYNPHjbc8/Nyvm6AGbWcc2P
ResponseStream :
Headers        : {x-amz-id-2, x-amz-request-id, Date, Server}
Metadata       : {}
ResponseXml    :
```

In 1.1 und neueren Versionen von können Sie den AWS -Tools für PowerShell`-DeleteBucketContent` Parameter zu hinzufügen`Remove-S3Bucket`, der zuerst alle Objekte und Objektversionen im angegebenen Bucket löscht, bevor versucht wird, den Bucket selbst zu entfernen. Je nach Anzahl der Objekte oder Objektversionen im Bucket kann dieser Vorgang längere Zeit dauern. In Versionen der Tools für Windows, die PowerShell älter als 1.1 waren, musste der Bucket leer sein, bevor er gelöscht werden `Remove-S3Bucket` konnte.

**Anmerkung**  
Sofern Sie den `-Force` Parameter nicht hinzufügen, AWS -Tools für PowerShell werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

## Weitere Informationen finden Sie unter:
<a name="pstools-seealso-amazon-s3-delete-website"></a>
+  [AWS Anrufdienste in der AWS -Tools für PowerShell](pstools-using.md) 
+  [Delete Object (Amazon S3-API-Referenz)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html) 
+  [DeleteBucket (Amazon S3 S3-API-Referenz)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETE.html) 

# Hochladen von Inline-Textinhalt nach Amazon S3
<a name="pstools-s3-upload-in-line-text"></a>

Das Cmdlet `Write-S3Object` unterstützt das Hochladen von Inline-Textinhalt nach Amazon S3. Sie können mit dem Parameter `-Content` (Alias `-Text`) Textinhalt nach Amazon S3 hochladen, ohne dass dieser zuerst in eine Datei eingefügt werden muss. Der Parameter akzeptiert sowohl einfache einzeilige Zeichenfolgen als auch – wie hier gezeigt – Zeichenfolgen mit mehreren Zeilen.

```
PS > # Specifying content in-line, single line text:
PS > write-s3object amzn-s3-demo-bucket -key myobject.txt -content "file content"

PS > # Specifying content in-line, multi-line text: (note final newline needed to end in-line here-string)
PS > write-s3object amzn-s3-demo-bucket -key myobject.txt -content @"
>> line 1
>> line 2
>> line 3
>> "@
>> 
PS > # Specifying content from a variable: (note final newline needed to end in-line here-string)
PS > $x = @"
>> line 1
>> line 2
>> line 3
>> "@
>> 
PS > write-s3object amzn-s3-demo-bucket -key myobject.txt -content $x
```

# Amazon EC2 und Tools für Windows PowerShell
<a name="pstools-ec2"></a>

Mit dem können Sie allgemeine Aufgaben im Zusammenhang EC2 mit Amazon ausführen AWS -Tools für PowerShell.

Bei den hier gezeigten Beispielbefehlen wird davon ausgegangen, dass Sie Standardanmeldedaten und eine Standardregion für Ihre PowerShell Sitzung festgelegt haben. Aus diesem Grund geben wir im Aufruf von Cmdlets weder Anmeldeinformationen noch eine Region an. Weitere Informationen erhalten Sie unter [Authentifizierung mit AWS](creds-idc.md) und [AWS Region](pstools-installing-specifying-region.md).

**Topics**
+ [Erstellen eines Schlüsselpaares](pstools-ec2-keypairs.md)
+ [Erstellen einer Sicherheitsgruppe](pstools-ec2-sg.md)
+ [Suchen eines AMI](pstools-ec2-get-amis.md)
+ [Starten Sie eine Instance](pstools-ec2-launch.md)

# Erstellen eines Schlüsselpaars
<a name="pstools-ec2-keypairs"></a>

Das folgende `New-EC2KeyPair` Beispiel erstellt ein key pair und speichert es in der PowerShell Variablen `$myPSKeyPair` 

```
PS > $myPSKeyPair = New-EC2KeyPair -KeyName myPSKeyPair
```

Übergeben Sie das Schlüsselpaarobjekt mit einem Pipe-Zeichen an das Cmdlet `Get-Member`, um die Struktur des Objekts anzuzeigen.

```
PS > $myPSKeyPair | Get-Member

     TypeName: Amazon.EC2.Model.KeyPair

  Name                MemberType   Definition
  ----                ----------   ----------
  Equals              Method       bool Equals(System.Object obj)
  GetHashCode         Method       int GetHashCode()
  GetType             Method       type GetType()
  ToString            Method       string ToString()
  KeyFingerprint      Property     System.String KeyFingerprint {get;set;}
  KeyMaterial         Property     System.String KeyMaterial {get;set;}
  KeyName             Property     System.String KeyName {get;set;}
```

Übergeben Sie das Schlüsselpaarobjekt mit einem Pipe-Zeichen an das Cmdlet `Format-List`, um die Werte der Elemente `KeyName`, `KeyFingerprint` und `KeyMaterial` anzuzeigen. (Die Ausgabe wurde zur besseren Lesbarkeit gekürzt.)

```
PS > $myPSKeyPair | Format-List KeyName, KeyFingerprint, KeyMaterial

  KeyName        : myPSKeyPair
  KeyFingerprint : 09:06:70:8e:26:b6:e7:ef:8f:fe:4a:1d:bc:9c:6a:63:11:ac:ad:3c
  KeyMaterial    : ----BEGIN RSA PRIVATE KEY----
                   MIIEogIBAAKCAQEAkK+ANYUS9c7niNjYfaCn6KYj/D0I6djnFoQE...
                   Mz6btoxPcE7EMeH1wySUp8nouAS9xbl9l7+VkD74bN9KmNcPa/Mu...
                   Zyn4vVe0Q5il/MpkrRogHqOB0rigeTeV5Yc3lvO0RFFPu0Kz4kcm...
                   w3Jg8dKsWn0plOpX7V3sRC02KgJIbejQUvBFGi5OQK9bm4tXBIeC...
                   daxKIAQMtDUdmBDrhR1/YMv8itFe5DiLLbq7Ga+FDcS85NstBa3h...
                   iuskGkcvgWkcFQkLmRHRoDpPb+OdFsZtjHZDpMVFmA9tT8EdbkEF...
                   3SrNeqZPsxJJIxOodb3CxLJpg75JU5kyWnb0+sDNVHoJiZCULCr0...
                   GGlLfEgB95KjGIk7zEv2Q7K6s+DHclrDeMZWa7KFNRZuCuX7jssC...
                   xO98abxMr3o3TNU6p1ZYRJEQ0oJr0W+kc+/8SWb8NIwfLtwhmJEy...
                   1BX9X8WFX/A8VLHrT1elrKmLkNECgYEAwltkV1pOJAFhz9p7ZFEv...
                   vvVsPaF0Ev9bk9pqhx269PB5Ox2KokwCagDMMaYvasWobuLmNu/1...
                   lmwRx7KTeQ7W1J3OLgxHA1QNMkip9c4Tb3q9vVc3t/fPf8vwfJ8C...
                   63g6N6rk2FkHZX1E62BgbewUd3eZOS05Ip4VUdvtGcuc8/qa+e5C...
                   KXgyt9nl64pMv+VaXfXkZhdLAdY0Khc9TGB9++VMSG5TrD15YJId...
                   gYALEI7m1jJKpHWAEs0hiemw5VmKyIZpzGstSJsFStERlAjiETDH...
                   YAtnI4J8dRyP9I7BOVOn3wNfIjk85gi1/0Oc+j8S65giLAfndWGR...
                   9R9wIkm5BMUcSRRcDy0yuwKBgEbkOnGGSD0ah4HkvrUkepIbUDTD...
                   AnEBM1cXI5UT7BfKInpUihZi59QhgdK/hkOSmWhlZGWikJ5VizBf...
                   drkBr/vTKVRMTi3lVFB7KkIV1xJxC5E/BZ+YdZEpWoCZAoGAC/Cd...
                   TTld5N6opgOXAcQJwzqoGa9ZMwc5Q9f4bfRc67emkw0ZAAwSsvWR...
                   x3O2duuy7/smTwWwskEWRK5IrUxoMv/VVYaqdzcOajwieNrblr7c...
                   -----END RSA PRIVATE KEY-----
```

Der private Schlüssel des Schlüsselpaares wird im Element `KeyMaterial` gespeichert. Der öffentliche Schlüssel wird in gespeichert AWS. Sie können den öffentlichen Schlüssel nicht von abrufen AWS, aber Sie können den öffentlichen Schlüssel überprüfen, indem Sie den `KeyFingerprint` für den privaten Schlüssel mit dem zurückgegebenen Schlüssel AWS für den öffentlichen Schlüssel vergleichen.

## Anzeigen des Schlüsselpaar-Fingerabdrucks
<a name="get-ec2keypair"></a>

Mit dem Cmdlet `Get-EC2KeyPair` können Sie den Schlüsselpaar-Fingerabdruck anzeigen.

```
PS > Get-EC2KeyPair -KeyName myPSKeyPair | format-list KeyName, KeyFingerprint

  KeyName        : myPSKeyPair
  KeyFingerprint : 09:06:70:8e:26:b6:e7:ef:8f:fe:4a:1d:bc:9c:6a:63:11:ac:ad:3c
```

## Speichern des privaten Schlüssels
<a name="store-ec2keypair"></a>

Um den privaten Schlüssel in einer Datei zu speichern, übergeben Sie das Element `KeyFingerMaterial` mit einem Pipe-Zeichen an das Cmdlet `Out-File`.

```
PS > $myPSKeyPair.KeyMaterial | Out-File -Encoding ascii myPSKeyPair.pem
```

Sie müssen beim Schreiben des privaten Schlüssels in eine Datei den Parameterwert `-Encoding ascii` angeben. Andernfalls können Tools wie beispielsweise `openssl` die Datei möglicherweise nicht richtig lesen. Das Format der beschriebenen Datei kann mit einem Befehl wie dem folgenden geprüft werden:

```
PS > openssl rsa -check < myPSKeyPair.pem
```

(Das `openssl` Tool ist nicht in der AWS -Tools für PowerShell oder der enthalten AWS SDK für .NET.)

## Entfernen des Schlüsselpaars
<a name="remove-ec2keypair"></a>

Sie benötigen das Schlüsselpaar, um eine Instance zu starten und eine Verbindung damit herzustellen. Wenn Sie ein Schlüsselpaar nicht mehr benötigen, können Sie es entfernen. Verwenden Sie das `Remove-EC2KeyPair` Cmdlet AWS, um den öffentlichen Schlüssel von zu entfernen. Drücken Sie bei Aufforderung die Taste `Enter`, um das Schlüsselpaar zu entfernen.

```
PS > Remove-EC2KeyPair -KeyName myPSKeyPair

Confirm
Performing the operation "Remove-EC2KeyPair (DeleteKeyPair)" on target "myPSKeyPair".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):
```

Die Variable,`$myPSKeyPair`, ist in der aktuellen PowerShell Sitzung noch vorhanden und enthält immer noch die Schlüsselpaarinformationen. Außerdem ist die Datei `myPSKeyPair.pem` vorhanden. Allerdings ist der private Schlüssel nicht mehr gültig, da der öffentliche Schlüssel des Schlüsselpaares nicht mehr in AWS gespeichert ist.

# Erstellen Sie eine Sicherheitsgruppe mit Windows PowerShell
<a name="pstools-ec2-sg"></a>

Sie können den verwenden AWS -Tools für PowerShell , um eine Sicherheitsgruppe zu erstellen und zu konfigurieren. Die Antwort ist die ID der Sicherheitsgruppe.

Wenn Sie eine Verbindung zur Instance herstellen müssen, muss die Sicherheitsgruppe so konfiguriert werden, dass SSH-Datenverkehr (Linux) oder RDP-Datenverkehr (Windows) möglich ist.

**Topics**
+ [Voraussetzungen](#sg-prerequisites)
+ [Eine Sicherheitsgruppe für VPC EC2 erstellen](#new-ec2securitygroup-vpc)

## Voraussetzungen
<a name="sg-prerequisites"></a>

Sie benötigen die öffentliche IP-Adresse des Computers in CIDR-Schreibweise. Sie können einen Service verwenden, um die öffentliche IP-Adresse des Computers abzufragen. Amazon bietet beispielsweise den folgenden Service an: [http://checkip.amazonaws.com/](http://checkip.amazonaws.com/) oder [https://checkip.amazonaws.com/](https://checkip.amazonaws.com/). Geben Sie zum Auffinden eines anderen Service, der Ihnen Ihre IP-Adresse nennt, den Suchausdruck "wie ist meine IP-Adresse" ein. Wenn Sie eine Verbindung über einen Internetdienstanbieter oder hinter Ihrer Firewall ohne statische IP-Adresse herstellen, müssen Sie den IP-Adressbereich ermitteln, der von Ihren Clientcomputern verwendet werden kann.

**Warnung**  
Wenn Sie `0.0.0.0/0` angeben, aktivieren Sie den Datenverkehr von allen IP-Adressen auf der ganzen Welt. Dieser Ansatz ist möglicherweise für SSH- und RDP-Protokolle in einer Testumgebung für kurze Zeit zulässig, aber für Produktionsumgebungen sehr unsicher. Achten Sie in Produktionsumgebungen darauf, nur Zugriff von der entsprechenden individuellen IP-Adresse oder vom entsprechenden Adressbereich zu autorisieren.

## Eine Sicherheitsgruppe für VPC EC2 erstellen
<a name="new-ec2securitygroup-vpc"></a>

**Warnung**  
EC2-Classic wurde am 15. August 2022 eingestellt. Wir empfehlen Ihnen, von EC2 -Classic zu einer VPC zu migrieren. Weitere Informationen finden Sie im Blogbeitrag [EC2-Classic Networking is Retiring — So bereiten Sie sich](https://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/) vor.

Im folgenden Beispiel für `New-EC2SecurityGroup` wird der Parameter `-VpcId` hinzugefügt, um eine Sicherheitsgruppe für die angegebene VPC zu erstellen.

```
PS > $groupid = New-EC2SecurityGroup `
    -VpcId "vpc-da0013b3" `
    -GroupName "myPSSecurityGroup" `
    -GroupDescription "EC2-VPC from PowerShell"
```

Verwenden Sie zum Anzeigen der anfänglichen Konfiguration das Cmdlet `Get-EC2SecurityGroup`. Standardmäßig enthält die Sicherheitsgruppe für eine VPC eine Regel, die den gesamten ausgehenden Datenverkehr zulässt. Beachten Sie, dass Sie eine Sicherheitsgruppe für EC2 VPC nicht namentlich referenzieren können.

```
PS > Get-EC2SecurityGroup -GroupId sg-5d293231

OwnerId             : 123456789012
GroupName           : myPSSecurityGroup
GroupId             : sg-5d293231
Description         : EC2-VPC from PowerShell
IpPermissions       : {}
IpPermissionsEgress : {Amazon.EC2.Model.IpPermission}
VpcId               : vpc-da0013b3
Tags                : {}
```

Verwenden Sie das Cmdlet `New-Object`, um die Berechtigungen für eingehenden Datenverkehr auf TCP-Port 22 (SSH) und TCP-Port 3389 zu definieren. Im folgenden Beispielskript werden Berechtigungen für TCP-Port 22 und 3389 von einer einzelnen IP-Adresse, `203.0.113.25/32`, definiert.

```
$ip1 = new-object Amazon.EC2.Model.IpPermission 
$ip1.IpProtocol = "tcp" 
$ip1.FromPort = 22 
$ip1.ToPort = 22 
$ip1.IpRanges.Add("203.0.113.25/32") 
$ip2 = new-object Amazon.EC2.Model.IpPermission 
$ip2.IpProtocol = "tcp" 
$ip2.FromPort = 3389 
$ip2.ToPort = 3389 
$ip2.IpRanges.Add("203.0.113.25/32") 
Grant-EC2SecurityGroupIngress -GroupId $groupid -IpPermissions @( $ip1, $ip2 )
```

Verwenden Sie das Cmdlet `Get-EC2SecurityGroup` erneut, um zu verifizieren, dass die Sicherheitsgruppe aktualisiert wurde.

```
PS > Get-EC2SecurityGroup -GroupIds sg-5d293231

OwnerId             : 123456789012
GroupName           : myPSSecurityGroup
GroupId             : sg-5d293231
Description         : EC2-VPC from PowerShell
IpPermissions       : {Amazon.EC2.Model.IpPermission}
IpPermissionsEgress : {Amazon.EC2.Model.IpPermission}
VpcId               : vpc-da0013b3
Tags                : {}
```

Um die eingehenden Regeln anzuzeigen, können Sie die Eigenschaft `IpPermissions` aus dem vom vorherigen Befehl zurückgegebenen Sammlungsobjekt abrufen.

```
PS > (Get-EC2SecurityGroup -GroupIds sg-5d293231).IpPermissions

IpProtocol       : tcp
FromPort         : 22
ToPort           : 22
UserIdGroupPairs : {}
IpRanges         : {203.0.113.25/32}

IpProtocol       : tcp
FromPort         : 3389
ToPort           : 3389
UserIdGroupPairs : {}
IpRanges         : {203.0.113.25/32}
```

# Suchen Sie mithilfe von Windows nach einem Amazon-Maschinen-Image PowerShell
<a name="pstools-ec2-get-amis"></a>

Wenn Sie eine EC2 Amazon-Instance starten, geben Sie ein Amazon Machine Image (AMI) an, das als Vorlage für die Instance dient. Die IDs für AWS Windows AMIs ändern sich jedoch häufig, da sie neue AWS Versionen AMIs mit den neuesten Updates und Sicherheitsverbesserungen bieten. Sie können das [Get-EC2Image](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-EC2Image.html)Cmdlet verwenden, um das aktuelle Windows zu finden AMIs und es abzurufen. IDs

## Get-EC2Image
<a name="pstools-ec2-get-image"></a>

Das `Get-EC2Image` Cmdlet ruft eine Liste der Dateien ab, die Sie verwenden können. AMIs 

Verwenden Sie den `-Owner` Parameter mit dem Array-Wert, `amazon, self` AMIs sodass nur diejenigen `Get-EC2Image` abgerufen werden, die Amazon oder Ihnen gehören. In diesem Zusammenhang bezeichnet *Sie* den Benutzer, dessen Anmeldeinformationen Sie zum Aufrufen des Cmdlets verwendet haben.

```
PS > Get-EC2Image -Owner amazon, self
```

Sie können den Umfang der Ergebnisse mit dem Parameter `-Filter` definieren. Um den Filter anzugeben, erstellen Sie ein Objekt des Typs `Amazon.EC2.Model.Filter`. Verwenden Sie beispielsweise den folgenden Filter, um nur Windows AMIs anzuzeigen.

```
$platform_values = New-Object 'collections.generic.list[string]'
$platform_values.add("windows")
$filter_platform = New-Object Amazon.EC2.Model.Filter -Property @{Name = "platform"; Values = $platform_values}
Get-EC2Image -Owner amazon, self -Filter $filter_platform
```

Im Folgenden finden Sie ein Beispiel für einen der vom Cmdlet AMIs zurückgegebenen Befehle. Die tatsächliche Ausgabe des vorherigen Befehls enthält Informationen für viele. AMIs

```
Architecture        : x86_64
BlockDeviceMappings : {/dev/sda1, xvdca, xvdcb, xvdcc…}
CreationDate        : 2019-06-12T10:41:31.000Z
Description         : Microsoft Windows Server 2019 Full Locale English with SQL Web 2017 AMI provided by Amazon
EnaSupport          : True
Hypervisor          : xen
ImageId             : ami-000226b77608d973b
ImageLocation       : amazon/Windows_Server-2019-English-Full-SQL_2017_Web-2019.06.12
ImageOwnerAlias     : amazon
ImageType           : machine
KernelId            : 
Name                : Windows_Server-2019-English-Full-SQL_2017_Web-2019.06.12
OwnerId             : 801119661308
Platform            : Windows
ProductCodes        : {}
Public              : True
RamdiskId           : 
RootDeviceName      : /dev/sda1
RootDeviceType      : ebs
SriovNetSupport     : simple
State               : available
StateReason         : 
Tags                : {}
VirtualizationType  : hvm
```

**Anmerkung**  
In Version 4 von wurde das `Get-EC2ImageByName` Cmdlet AWS -Tools für PowerShell bereitgestellt, mit dem die Liste der Muster nach Namen gefiltert werden kann. AMIs Verwenden Sie für Version 5 der Tools stattdessen das Cmdlet [Get- SSMLatest EC2 Image](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-SSMLatestEC2Image.html).

# Starten Sie eine EC2 Amazon-Instance mit Windows PowerShell
<a name="pstools-ec2-launch"></a>

Um eine EC2 Amazon-Instance zu starten, benötigen Sie das key pair und die Sicherheitsgruppe, die Sie in den vorherigen Abschnitten erstellt haben. Sie benötigen außerdem die ID eines Amazon Machine Images (AMI). Weitere Informationen finden Sie in der folgenden -Dokumentation:
+  [Erstellen eines Schlüsselpaars](pstools-ec2-keypairs.md) 
+  [Erstellen Sie eine Sicherheitsgruppe mithilfe von Windows PowerShell](pstools-ec2-sg.md) 
+  [Suchen Sie mithilfe von Windows nach einem Amazon-Maschinen-Image PowerShell](pstools-ec2-get-amis.md) 

**Wichtig**  
Wenn Sie eine Instance starten, die nicht im kostenlosen Kontingent enthalten ist, fallen für diese Instance nach dem Start Gebühren an. Ihnen wird die Zeit berechnet, die die Instance ausgeführt wird, auch wenn diese nicht genutzt wird.

**Topics**
+ [Starten einer Instance in einer VPC](#new-ec2instance-vpc)
+ [Starten einer Spot-Instance in einer VPC](#new-ec2instance-spot)

## Starten einer Instance in einer VPC
<a name="new-ec2instance-vpc"></a>

**Warnung**  
EC2-Classic wurde am 15. August 2022 eingestellt. Wir empfehlen Ihnen, von EC2 -Classic zu einer VPC zu migrieren. Weitere Informationen finden Sie im Blogbeitrag [EC2-Classic Networking is Retiring — So bereiten Sie sich](https://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/) vor.

Mit dem folgenden Befehl wird eine einzelne `m1.small`-Instance im angegebenen privaten Subnetz gestartet. Die Sicherheitsgruppe muss für das angegebene Subnetz gültig sein.

```
PS > New-EC2Instance `
    -ImageId ami-c49c0dac `
    -MinCount 1 -MaxCount 1 `
    -KeyName myPSKeyPair `
    -SecurityGroupId sg-5d293231 `
    -InstanceType m1.small `
    -SubnetId subnet-d60013bf

ReservationId   : r-b70a0ef1
OwnerId         : 123456789012
RequesterId     :
Groups          : {}
GroupName       : {}
Instances       : {}
```

Die Instance weist anfangs den Status `pending` auf, wechselt aber nach wenigen Minuten in den Status `running`. Verwenden Sie zum Anzeigen von Informationen zur Instance das Cmdlet `Get-EC2Instance`. Wenn mehr als eine Instance vorliegt, können Sie die Ergebnisse mit dem Parameter `Filter` über die Reservierungs-ID filtern. Erstellen Sie zunächst ein Objekt des Typs `Amazon.EC2.Model.Filter`. Rufen Sie dann das Cmdlet `Get-EC2Instance`, das den Filter verwendet, und zeigen Sie dann die Eigenschaft `Instances` an.

```
PS > $reservation = New-Object 'collections.generic.list[string]'
PS > $reservation.add("r-b70a0ef1")
PS > $filter_reservation = New-Object Amazon.EC2.Model.Filter -Property @{Name = "reservation-id"; Values = $reservation}
PS > (Get-EC2Instance -Filter $filter_reservation).Instances

AmiLaunchIndex        : 0
Architecture          : x86_64
BlockDeviceMappings   : {/dev/sda1}
ClientToken           :
EbsOptimized          : False
Hypervisor            : xen
IamInstanceProfile    :
ImageId               : ami-c49c0dac
InstanceId            : i-5203422c
InstanceLifecycle     :
InstanceType          : m1.small
KernelId              :
KeyName               : myPSKeyPair
LaunchTime            : 12/2/2018 3:38:52 PM
Monitoring            : Amazon.EC2.Model.Monitoring
NetworkInterfaces     : {}
Placement             : Amazon.EC2.Model.Placement
Platform              : Windows
PrivateDnsName        :
PrivateIpAddress      : 10.25.1.11
ProductCodes          : {}
PublicDnsName         :
PublicIpAddress       : 198.51.100.245
RamdiskId             :
RootDeviceName        : /dev/sda1
RootDeviceType        : ebs
SecurityGroups        : {myPSSecurityGroup}
SourceDestCheck       : True
SpotInstanceRequestId :
SriovNetSupport       :
State                 : Amazon.EC2.Model.InstanceState
StateReason           :
StateTransitionReason :
SubnetId              : subnet-d60013bf
Tags                  : {}
VirtualizationType    : hvm
VpcId                 : vpc-a01106c2
```

## Starten einer Spot-Instance in einer VPC
<a name="new-ec2instance-spot"></a>

Im folgenden Beispielskript wird eine Spot-Instance im angegebenen Subnetz angefordert. Die Sicherheitsgruppe muss für die VPC mit dem angegebenen Subnetz erstellt worden sein.

```
$interface1 = New-Object Amazon.EC2.Model.InstanceNetworkInterfaceSpecification
$interface1.DeviceIndex = 0
$interface1.SubnetId = "subnet-b61f49f0"
$interface1.PrivateIpAddress = "10.0.1.5"
$interface1.Groups.Add("sg-5d293231")
Request-EC2SpotInstance `
    -SpotPrice 0.007 `
    -InstanceCount 1 `
    -Type one-time `
    -LaunchSpecification_ImageId ami-7527031c `
    -LaunchSpecification_InstanceType m1.small `
    -Region us-west-2 `
    -LaunchSpecification_NetworkInterfaces $interface1
```

# AWS Lambda und AWS -Tools für PowerShell
<a name="pstools-lambda"></a>

Mithilfe des [AWSLambdaPSCore](https://www.powershellgallery.com/packages/AWSLambdaPSCore)Moduls können Sie AWS Lambda Funktionen in PowerShell Core 6.0 mithilfe der.NET Core 2.1-Runtime entwickeln. PowerShell Entwickler können mithilfe von Lambda AWS Ressourcen verwalten und Automatisierungsskripte in der PowerShell Umgebung schreiben. PowerShell Dank der Unterstützung in Lambda können Sie PowerShell Skripts oder Funktionen als Reaktion auf ein beliebiges Lambda-Ereignis ausführen, z. B. ein Amazon S3 S3-Ereignis oder ein von Amazon CloudWatch geplantes Ereignis. Das AWSLambda PSCore Modul ist ein separates AWS Modul für PowerShell; es ist weder Teil von AWS -Tools für PowerShell, noch wird bei der Installation des AWSLambda PSCore Moduls das installiert. AWS -Tools für PowerShell

Nach der Installation des AWSLambda PSCore Moduls können Sie alle verfügbaren PowerShell Cmdlets verwenden oder eigene Cmdlets entwickeln, um serverlose Funktionen zu erstellen. Das PowerShell Modul AWS Lambda Tools for umfasst Projektvorlagen für PowerShell basierte serverlose Anwendungen und Tools zum Veröffentlichen von Projekten. AWS

AWSLambdaPSCore Modulunterstützung ist in allen Regionen verfügbar, die Lambda unterstützen. Weitere Informationen zu den unterstützen Regionen finden Sie in der [Tabelle der AWS -Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

## Voraussetzungen
<a name="prerequisites"></a>

Die folgenden Schritte sind erforderlich, bevor Sie das AWSLambda PSCore Modul installieren und verwenden können. Weitere Informationen zu diesen Schritten finden Sie unter [Einrichten einer PowerShell Entwicklungsumgebung](https://docs.aws.amazon.com/lambda/latest/dg/lambda-powershell-setup-dev-environment.html) im AWS Lambda Entwicklerhandbuch.
+  **Installieren Sie die richtige Version von PowerShell** — Lambdas Unterstützung für PowerShell basiert auf der plattformübergreifenden PowerShell Core 6.0-Version. Sie können PowerShell Lambda-Funktionen unter Windows, Linux oder Mac entwickeln. Falls Sie nicht mindestens diese Version von PowerShell installiert haben, finden Sie Anweisungen auf der [ PowerShell Microsoft-Dokumentationswebsite](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell).
+  **Installieren Sie das.NET Core 2.1 SDK** — Da PowerShell Core auf .NET Core basiert, PowerShell verwendet die Lambda-Unterstützung für dieselbe .NET Core 2.1-Lambda-Laufzeit sowohl für .NET Core- als auch für PowerShell Lambda-Funktionen. Die PowerShell Lambda-Publishing-Cmdlets verwenden das.NET Core 2.1-SDK, um das Lambda-Bereitstellungspaket zu erstellen. Das .NET Core 2.1 SDK finden Sie im [Microsoft Download Center](https://www.microsoft.com/net/download). Achten Sie darauf, das SDK und nicht die Laufzeit zu installieren.

## AWSLambdaPSCore Installieren Sie das Modul
<a name="install-the-awslambdapscore-module"></a>

Nachdem Sie die Voraussetzungen erfüllt haben, können Sie das AWSLambda PSCore Modul installieren. Führen Sie den folgenden Befehl in einer PowerShell Core-Sitzung aus.

```
PS> Install-Module AWSLambdaPSCore -Scope CurrentUser
```

Sie sind bereit, mit der Entwicklung von Lambda-Funktionen in PowerShell zu beginnen. Weitere Informationen zu den ersten Schritten finden Sie unter [Programmiermodell für die Erstellung von Lambda-Funktionen PowerShell im](https://docs.aws.amazon.com/lambda/latest/dg/powershell-programming-model.html) AWS Lambda Entwicklerhandbuch.

## Weitere Informationen finden Sie unter:
<a name="see-also"></a>
+  [Ankündigung des Lambda-Supports für PowerShell Core im Developer Blog AWS](https://aws.amazon.com/blogs/developer/announcing-lambda-support-for-powershell-core/) 
+  [AWSLambdaPSCore Modul auf der Gallery-Website PowerShell ](https://www.powershellgallery.com/packages/AWSLambdaPSCore/1.0.0.2) 
+  [Einrichtung einer PowerShell Entwicklungsumgebung](https://docs.aws.amazon.com/lambda/latest/dg/lambda-powershell-setup-dev-environment.html) 
+ [AWS Lambda Tools für Powershell auf GitHub](https://github.com/aws/aws-lambda-dotnet/tree/master/PowerShell)
+  [AWS Lambda-Konsole](https://console.aws.amazon.com/lambda/home) 

# Amazon SQS, Amazon SNS und Tools für Windows PowerShell
<a name="pstools-sqs-queue-sns-topic"></a>

Dieser Abschnitt enthält Beispiele, die Folgendes veranschaulichen:
+ Erstellen einer Amazon-SQS-Warteschlange und Abrufen des Amazon-Ressourcennamens (ARN).
+ Erstellen Sie ein Amazon-SNS-Thema.
+ Erteilen Sie Berechtigungen für das SNS-Thema, damit es Nachrichten an die Warteschlange senden kann.
+ Abonnieren der Warteschlange für das SNS-Thema
+ Erteilen Sie IAM-Benutzern oder AWS -Konten die Berechtigung, im SNS-Thema zu veröffentlichen und Nachrichten aus der SQS-Warteschlange zu lesen.
+ Verifizieren Sie die Ergebnisse, indem Sie eine Nachricht im Thema veröffentlichen und die Nachricht in der Warteschlange lesen.

## Erstellen einer Amazon-SQS-Warteschlange und Abrufen des Warteschlangen-ARN
<a name="pstools-create-sqs-queue"></a>

Mit dem folgenden Befehl wird eine SQS-Warteschlange in Ihrer Standardregion erstellt. Die Ausgabe zeigt die URL der neuen Warteschlange an.

```
PS > New-SQSQueue -QueueName myQueue
https://sqs.us-west-2.amazonaws.com/123456789012/myQueue
```

Der folgende Befehl ruft den ARN der Warteschlange ab.

```
PS > Get-SQSQueueAttribute -QueueUrl https://sqs.us-west-2.amazonaws.com/123456789012/myQueue -AttributeName QueueArn
...
QueueARN               : arn:aws:sqs:us-west-2:123456789012:myQueue
...
```

## Erstellen Sie ein Amazon SNS-Thema.
<a name="pstools-create-sns-topic"></a>

Mit dem folgenden Befehl wird ein SNS-Thema in Ihrer Standardregion erstellt und der ARN des neuen Themas wird zurückgegeben.

```
PS > New-SNSTopic -Name myTopic
arn:aws:sns:us-west-2:123456789012:myTopic
```

## Gewähren von Berechtigungen für das SNS-Thema
<a name="pstools-permissions-sns-topic"></a>

Das folgende Beispielskript erstellt sowohl eine SQS-Warteschlange als auch ein SNS-Thema und erteilt Berechtigungen für das SNS-Thema, damit es Nachrichten an die SQS-Warteschlange senden kann:

```
# create the queue and topic to be associated
$qurl = New-SQSQueue -QueueName "myQueue"
$topicarn = New-SNSTopic -Name "myTopic"

# get the queue ARN to inject into the policy; it will be returned
# in the output's QueueARN member but we need to put it into a variable
# so text expansion in the policy string takes effect
$qarn = (Get-SQSQueueAttribute -QueueUrl $qurl -AttributeNames "QueueArn").QueueARN

# construct the policy and inject arns
$policy = @"
{
    "Version": "2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Principal": "*",
        "Action": "SQS:SendMessage",
        "Resource": "$qarn",
        "Condition": { "ArnEquals": { "aws:SourceArn": "$topicarn" } }
    }
}
"@

# set the policy
Set-SQSQueueAttribute -QueueUrl $qurl -Attribute @{ Policy=$policy }
```

## Abonnieren der Warteschlange für das SNS-Thema
<a name="pstools-subscribe-queue-topic"></a>

Mit dem folgenden Befehl wird die Warteschlange `myQueue` für das SNS-Thema `myTopic` abonniert und die Abonnement-ID zurückgegeben:

```
PS > Connect-SNSNotification `
    -TopicARN arn:aws:sns:us-west-2:123456789012:myTopic `
    -Protocol SQS `
    -Endpoint arn:aws:sqs:us-west-2:123456789012:myQueue
arn:aws:sns:us-west-2:123456789012:myTopic:f8ff77c6-e719-4d70-8e5c-a54d41feb754
```

## Gewähren von Berechtigungen
<a name="pstools-permissions-publish-read"></a>

Mit dem folgenden Befehl wird die Berechtigung zum Ausführen der Aktion `sns:Publish` für das Thema `myTopic` gewährt

```
PS > Add-SNSPermission `
    -TopicArn arn:aws:sns:us-west-2:123456789012:myTopic `
    -Label ps-cmdlet-topic `
    -AWSAccountIds 123456789012 `
    -ActionNames publish
```

Mit dem folgenden Befehl wird die Berechtigung zum Ausführen der Aktionen `sqs:ReceiveMessage` und `sqs:DeleteMessage` für die Warteschlange `myQueue` gewährt:

```
PS > Add-SQSPermission `
    -QueueUrl https://sqs.us-west-2.amazonaws.com/123456789012/myQueue `
    -AWSAccountId "123456789012" `
    -Label queue-permission `
    -ActionName SendMessage, ReceiveMessage
```

## Überprüfen der Ergebnisse
<a name="pstools-verify-publish-read"></a>

Mit dem folgenden Befehl werden Ihre neue Warteschlange und das neue Thema getestet, indem eine Nachricht im SNS-Thema `myTopic` veröffentlicht und die `MessageId` zurückgegeben wird.

```
PS > Publish-SNSMessage `
    -TopicArn arn:aws:sns:us-west-2:123456789012:myTopic `
    -Message "Have A Nice Day!"
728180b6-f62b-49d5-b4d3-3824bb2e77f4
```

Mit dem folgenden Befehl wird die Nachricht aus der SQS-Warteschlange `myQueue` zurückgegeben und angezeigt:

```
PS > Receive-SQSMessage -QueueUrl https://sqs.us-west-2.amazonaws.com/123456789012/myQueue

Attributes             : {}
Body                   : {
                           "Type" : "Notification",
                           "MessageId" : "491c687d-b78d-5c48-b7a0-3d8d769ee91b",
                           "TopicArn" : "arn:aws:sns:us-west-2:123456789012:myTopic",
                           "Message" : "Have A Nice Day!",
                           "Timestamp" : "2019-09-09T21:06:27.201Z",
                           "SignatureVersion" : "1",
                           "Signature" : "llE17A2+XOuJZnw3TlgcXz4C4KPLXZxbxoEMIirelhl3u/oxkWmz5+9tJKFMns1ZOqQvKxk+ExfEZcD5yWt6biVuBb8pyRmZ1bO3hUENl3ayv2WQiQT1vpLpM7VEQN5m+hLIiPFcs
                         vyuGkJReV7lOJWPHnCN+qTE2lId2RPkFOeGtLGawTsSPTWEvJdDbLlf7E0zZ0q1niXTUtpsZ8Swx01X3QO6u9i9qBFt0ekJFZNJp6Avu05hIklb4yoRs1IkbLVNBK/y0a8Yl9lWp7a7EoWaBn0zhCESe7o
                         kZC6ncBJWphX7KCGVYD0qhVf/5VDgBuv9w8T+higJyvr3WbaSvg==",
                           "SigningCertURL" : "https://sns.us-west-2.amazonaws.com/SimpleNotificationService-6aad65c2f9911b05cd53efda11f913f9.pem",
                           "UnsubscribeURL" : 
                         "https://sns.us-west-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-west-2:123456789012:myTopic:22b77de7-a216-4000-9a23-bf465744ca84"
                         }
MD5OfBody              : 5b5ee4f073e9c618eda3718b594fa257
MD5OfMessageAttributes : 
MessageAttributes      : {}
MessageId              : 728180b6-f62b-49d5-b4d3-3824bb2e77f4
ReceiptHandle          : AQEB2vvk1e5cOKFjeIWJticabkc664yuDEjhucnIOqdVUmie7bX7GiJbl7F0enABUgaI2XjEcNPxixhVc/wfsAJZLNHnl8SlbQa0R/kD+Saqa4OIvfj8x3M4Oh1yM1cVKpYmhAzsYrAwAD5g5FvxNBD6zs
                         +HmXdkax2Wd+9AxrHlQZV5ur1MoByKWWbDbsqoYJTJquCclOgWIak/sBx/daBRMTiVQ4GHsrQWMVHtNC14q7Jy/0L2dkmb4dzJfJq0VbFSX1G+u/lrSLpgae+Dfux646y8yFiPFzY4ua4mCF/SVUn63Spy
                         sHN12776axknhg3j9K/Xwj54DixdsegnrKoLx+ctI+0jzAetBR66Q1VhIoJAq7s0a2MseyOeM/Jjucg6Sr9VUnTWVhV8ErXmotoiEg==
```

# CloudWatch von der AWS Tools for Windows PowerShell
<a name="pstools-cw"></a>

Dieser Abschnitt zeigt ein Beispiel dafür, wie Sie mithilfe der Tools für Windows PowerShell benutzerdefinierte Messdaten veröffentlichen können CloudWatch.

In diesem Beispiel wird vorausgesetzt, dass Sie Standardanmeldedaten und eine Standardregion für Ihre PowerShell Sitzung festgelegt haben. 

## Veröffentlichen Sie eine benutzerdefinierte Metrik in Ihrem CloudWatch Dashboard
<a name="pstools-cw-custom-metric-publish"></a>

Der folgende PowerShell Code initialisiert ein CloudWatch `MetricDatum` Objekt und sendet es an den Service. [Sie können das Ergebnis dieses Vorgangs sehen, indem Sie zur Konsole navigieren. CloudWatch ](https://console.aws.amazon.com/cloudwatch/home)

```
$dat = New-Object Amazon.CloudWatch.Model.MetricDatum
$dat.Timestamp = (Get-Date).ToUniversalTime()
$dat.MetricName = "New Posts"
$dat.Unit = "Count"
$dat.Value = ".50"
Write-CWMetricData -Namespace "Usage Metrics" -MetricData $dat
```

Beachten Sie Folgendes:
+ Die zum Initialisieren von `$dat.Timestamp` verwendeten Zeitstempeldaten müssen als UTC-Zeit (Coordinated Universal Time) angegeben werden.
+ Der Wert, den Sie zum Initialisieren von `$dat.Value` verwenden, kann eine in Anführungszeichen angegebene Zeichenfolge oder ein numerischer Wert (ohne Anführungszeichen) sein. Das Beispiel zeigt einen Zeichenfolgenwert.

## Weitere Informationen finden Sie unter:
<a name="see-also"></a>
+  [AWS Anrufdienste in der AWS -Tools für PowerShell](pstools-using.md) 
+  [AmazonCloudWatchClient. PutMetricData](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudWatch/MCloudWatchPutMetricDataPutMetricDataRequest.html)(.NET SDK-Referenz)
+  [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)(Referenz zur Service-API)
+  [ CloudWatch Amazon-Konsole](https://console.aws.amazon.com/cloudwatch/home) 

# Verwenden des ClientConfig Parameters in Cmdlets
<a name="pstools-clientconfig"></a>

Mit dem `ClientConfig`-Parameter können bestimmte Konfigurationseinstellungen angegeben werden, wenn Sie eine Verbindung zu einem Service herstellen. Die meisten möglichen Eigenschaften dieses Parameters sind in der [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TClientConfig.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TClientConfig.html)Klasse definiert, die an die AWS For-Dienste vererbt wird. APIs Ein Beispiel für einfache Vererbung finden Sie in der [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Keyspaces/TKeyspacesConfig.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Keyspaces/TKeyspacesConfig.html)-Klasse. Darüber hinaus definieren einige Services zusätzliche Eigenschaften, die nur für diesen Service geeignet sind. Ein Beispiel für zusätzliche Eigenschaften, die definiert wurden, finden Sie in der [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Config.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Config.html)-Klasse, insbesondere in der `ForcePathStyle`-Eigenschaft.

## Verwenden des `ClientConfig`-Parameters
<a name="clientconfig-operation"></a>

Um den `ClientConfig` Parameter zu verwenden, können Sie ihn in der Befehlszeile als `ClientConfig` Objekt angeben oder mithilfe von PowerShell Splatting eine Sammlung von Parameterwerten als Einheit an einen Befehl übergeben. Diese Methoden werden im folgenden Beispiel verdeutlicht. In den Beispielen wird davon ausgegangen, dass das `AWS.Tools.S3`-Modul installiert und importiert wurde und dass Sie über ein `[default]`-Anmeldeinformationsprofil mit entsprechenden Berechtigungen verfügen.

******Definieren eines `ClientConfig`-Objekts**

```
$s3Config = New-Object -TypeName Amazon.S3.AmazonS3Config
$s3Config.ForcePathStyle = $true
$s3Config.Timeout = [TimeSpan]::FromMilliseconds(150000)
Get-S3Object -BucketName <BUCKET_NAME> -ClientConfig $s3Config
```

**Hinzufügen von `ClientConfig` Eigenschaften mithilfe PowerShell von Splatting**

```
$params=@{
    ClientConfig=@{
        ForcePathStyle=$true
        Timeout=[TimeSpan]::FromMilliseconds(150000)
    }
    BucketName="<BUCKET_NAME>"
}

Get-S3Object @params
```

## Verwenden einer undefinierten Eigenschaft
<a name="clientconfig-undefined"></a>

Wenn Sie bei der Verwendung PowerShell von Splatting eine `ClientConfig` Eigenschaft angeben, die nicht existiert, wird der AWS -Tools für PowerShell Fehler erst zur Laufzeit erkannt. Zu diesem Zeitpunkt wird eine Ausnahme zurückgegeben. Ändern des obigen Beispiels:

```
$params=@{
    ClientConfig=@{
        ForcePathStyle=$true
        UndefinedProperty="Value"
        Timeout=[TimeSpan]::FromMilliseconds(150000)
    }
    BucketName="<BUCKET_NAME>"
}

Get-S3Object @params
```

In diesem Beispiel wird eine Ausnahme in etwa wie folgt erstellt:

```
Cannot bind parameter 'ClientConfig'. Cannot create object of type "Amazon.S3.AmazonS3Config". The UndefinedProperty property was not found for the Amazon.S3.AmazonS3Config object.
```

## Spezifizieren der AWS-Region
<a name="clientconfig-region"></a>

Sie können den `ClientConfig` Parameter verwenden, um den AWS-Region für den Befehl festzulegen. Die Region wird über die `RegionEndpoint`-Eigenschaft festgelegt. Der AWS -Tools für PowerShell berechnet die zu verwendende Region anhand der folgenden Rangfolge:

1. Der `-Region`-Parameter

1. Die Region, die im `ClientConfig`-Parameter übergeben wurde

1. Der PowerShell Sitzungsstatus

1. Die gemeinsam genutzte AWS `config` Datei

1. Die Umgebungsvariablen

1. Die EC2 Amazon-Instance-Metadaten, falls aktiviert.