

La version 5 (V5) du Outils AWS pour PowerShell est sortie \$1

Pour plus d'informations sur les modifications majeures et la migration de vos applications, consultez la [rubrique relative à la migration](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)

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# AWS Services d'appel dans le Outils AWS pour PowerShell
<a name="pstools-using"></a>

Cette section fournit des exemples d'utilisation des AWS services Outils AWS pour PowerShell pour accéder. Ces exemples montrent comment utiliser les applets de commande pour effectuer des tâches réelles AWS . Ces exemples s'appuient sur des applets de commande fournis par Tools for PowerShell . Pour déterminer les applets de commande disponibles, consultez la [référence des applets de commande Outils AWS pour PowerShell](https://docs.aws.amazon.com/powershell/v5/reference/).

Vous trouverez d'autres Outils AWS pour PowerShell exemples dans le [Exemples de code](powershell_code_examples.md) chapitre.

## PowerShell Codage par concaténation de fichiers
<a name="powershell-file-concatenation-encoding"></a>

Certaines applets de commande permettent de Outils AWS pour PowerShell modifier des fichiers ou des enregistrements existants que vous avez. AWS Par exemple`Edit-R53ResourceRecordSet`, qui appelle l'[ChangeResourceRecordSets](https://docs.aws.amazon.com/Route53/latest/APIReference/API_ChangeResourceRecordSets.html)API pour Amazon Route 53.

Lorsque vous modifiez ou concaténez des fichiers dans les versions PowerShell 5.1 ou antérieures, PowerShell encode le résultat en UTF-16, et non en UTF-8. Cela peut ajouter des caractères indésirables et créer des résultats non valides. Un éditeur hexadécimal peut afficher les caractères indésirables.

Pour éviter de convertir la sortie du fichier en UTF-16, vous pouvez diriger votre commande vers PowerShell l'`Out-File`applet de commande et spécifier le codage UTF-8, comme illustré dans l'exemple suivant :

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

Si vous exécutez des AWS CLI commandes depuis la PowerShell console, le même comportement s'applique. Vous pouvez rediriger le résultat d'une AWS CLI commande vers `Out-File` la PowerShell console. D’autres applets de commande, comme `Export-Csv` ou `Export-Clixml`, disposent également d’un paramètre `Encoding`. Pour obtenir la liste complète des applets de commande ayant un paramètre `Encoding` et permettant de corriger l'encodage de la sortie d'un fichier concaténé, exécutez la commande suivante :

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

**Note**  
PowerShell Les versions 6.0 et ultérieures, y compris PowerShell Core, conservent automatiquement le codage UTF-8 pour la sortie de fichiers concaténés.

## Objets renvoyés pour les PowerShell outils
<a name="returned-objects-for-the-powershell-tools"></a>

Pour être Outils AWS pour PowerShell plus utile dans un PowerShell environnement natif, l'objet renvoyé par une Outils AWS pour PowerShell applet de commande est un objet .NET, et non l'objet texte JSON généralement renvoyé par l'API correspondante dans le AWS SDK. Par exemple, `Get-S3Bucket` émet une collection `Buckets`, et non un objet de réponse Amazon S3 JSON. La `Buckets` collection peut être placée dans le PowerShell pipeline et utilisée de manière appropriée. De même, `Get-EC2Instance` émet une collection d'objets `Reservation` .NET, et non un objet de résultat JSON `DescribeEC2Instances`. Ce comportement est intentionnel et permet à l' Outils AWS pour PowerShell expérience d'être plus cohérente avec l'idiomatique PowerShell.

Les réponses de service réelles sont à votre disposition si vous en avez besoin. Elles sont stockées en tant que propriétés `note` dans les objets renvoyés. Pour les actions d'API qui prennent en charge la pagination à l'aide des champs `NextToken`, ces réponses sont également attachées sous forme de propriétés `note`.

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

Cette section présente les étapes requises pour lancer une instance Amazon EC2, y compris les actions suivantes :
+ Récupérez une liste d'Amazon Machine Images (AMIs).
+ Créer une paire de clés pour l'authentification SSH.
+ Créer et configurer un groupe de sécurité Amazon EC2.
+ Lancer l'instance et récupérer les informations associées.

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

Cette section présente les étapes nécessaires pour créer un site Web statique hébergé dans Amazon S3. Elle explique comment :
+ Créer et supprimer des compartiments Amazon S3.
+ Charger des fichiers dans un compartiment Amazon S3 en tant qu'objets.
+ Supprimer des objets d'un compartiment Amazon S3.
+ Désigner un compartiment Amazon S3 en tant que site Web.

## [AWS Lambda et Outils AWS pour PowerShell](pstools-lambda.md)
<a name="using-lambda"></a>

Cette section fournit un bref aperçu des outils AWS Lambda pour le PowerShell module et décrit les étapes requises pour configurer le module.

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

Cette section présente les étapes requises pour abonner une file d'attente Amazon SQS à une rubrique Amazon SNS. Elle explique comment :
+ Créer une rubrique Amazon SNS.
+ Créer une file d'attente Amazon SQS.
+ Abonnez la file d'attente à la rubrique .
+ Envoyer un message à la rubrique.
+ Recevoir le message de la file d'attente.

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

Cette section fournit un exemple de la façon de publier des données personnalisées dans CloudWatch.
+ Publiez une métrique personnalisée sur votre CloudWatch tableau de bord.

## Voir aussi
<a name="see-also"></a>
+  [Configuration et utilisation du Outils AWS pour PowerShell](pstools-getting-started.md) 

## Rubriques
<a name="w2aac13c23"></a>
+ [Amazon S3 et outils pour Windows PowerShell](pstools-s3.md)
+ [Amazon EC2 et Tools pour Windows PowerShell](pstools-ec2.md)
+ [AWS Lambda et Outils AWS pour PowerShell](pstools-lambda.md)
+ [Amazon SQS, Amazon SNS et outils pour Windows PowerShell](pstools-sqs-queue-sns-topic.md)
+ [CloudWatch à partir du AWS Tools for Windows PowerShell](pstools-cw.md)
+ [Utilisation du ClientConfig paramètre dans les applets de commande](pstools-clientconfig.md)

# Amazon S3 et outils pour Windows PowerShell
<a name="pstools-s3"></a>

Dans cette section, nous créons un site Web statique à l' AWS Tools for Windows PowerShell aide d'Amazon S3 et CloudFront. Dans le processus, nous proposons un certain nombre de tâches courantes avec ces services. Cette procédure est modélisée d'après la procédure d'[hébergement d'un site Web statique](https://aws.amazon.com/getting-started/projects/host-static-website/) du Guide de démarrage, qui décrit un processus similaire en utilisant la [AWS Management Console](https://console.aws.amazon.com/s3/home).

Les commandes présentées ici supposent que vous avez défini des informations d'identification par défaut et une région par défaut pour votre PowerShell session. Par conséquent, les informations d'identification et les régions ne sont pas incluses dans l'appel des applets de commande.

**Note**  
Il n'existe actuellement aucune API Amazon S3 permettant de renommer un compartiment ou un objet, et par conséquent, aucune PowerShell applet de commande Tools for Windows ne permet d'effectuer cette tâche. Pour renommer un objet dans S3, nous vous recommandons de le copier vers un objet portant un nouveau nom, en exécutant l'[Copy-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Copy-S3Object.html)applet de commande, puis de supprimer l'objet d'origine en exécutant l'applet de commande. [Remove-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Remove-S3Object.html)

**Consultez aussi**
+  [AWS Services d'appel dans le Outils AWS pour PowerShell](pstools-using.md) 
+  [Hébergement d'un site web statique sur Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html) 
+  [Console Amazon S3](https://console.aws.amazon.com/s3/home) 

**Topics**
+ [Créer un compartiment Amazon S3, vérifier sa région et le supprimer (facultatif)](pstools-s3-bucket-create.md)
+ [Configuration d'un compartiment Amazon S3 comme site Web et activation de la journalisation](pstools-s3-create-website.md)
+ [Charger les objets sur un compartiment Amazon S3](pstools-s3-upload-object.md)
+ [Suppression d'objets et de compartiments Amazon S3](pstools-s3-delete-website.md)
+ [Charger du contenu du texte en ligne sur Amazon S3](pstools-s3-upload-in-line-text.md)

# Créer un compartiment Amazon S3, vérifier sa région et le supprimer (facultatif)
<a name="pstools-s3-bucket-create"></a>

Utilisez l'applet de commande `New-S3Bucket` pour créer un nouveau compartiment Amazon S3. Les exemples suivants créent un compartiment nommé `website-example`. Le nom du compartiment doit être unique dans toutes les régions. L'exemple montre comment créer le compartiment dans la région `us-west-1`.

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

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

Vous pouvez vérifier la région dans laquelle le compartiment se trouve à l'aide de l'applet de commande `Get-S3BucketLocation`.

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

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

Une fois que vous avez terminé ce didacticiel, vous pouvez utiliser la ligne suivante pour supprimer ce compartiment. Nous vous conseillons de laisser ce compartiment en place, car nous l'utiliserons dans de prochains exemples.

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

Notez que le processus de suppression du compartiment peut prendre un certain temps. Si vous essayez de recréer immédiatement un compartiment du même nom, l'applet de commande `New-S3Bucket` peut échouer tant que l'ancien compartiment n'a pas complètement disparu.

## Voir aussi
<a name="pstools-seealso-s3-bucket-create"></a>
+  [AWS Services d'appel dans le Outils AWS pour PowerShell](pstools-using.md) 
+  [Put Bucket (Référence des services Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUT.html) 
+  [AWS PowerShell Régions pour Amazon S3](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) 

# Configuration d'un compartiment Amazon S3 comme site Web et activation de la journalisation
<a name="pstools-s3-create-website"></a>

Utilisez l'applet de commande `Write-S3BucketWebsite` pour configurer un compartiment Amazon S3 comme site Web statique. L'exemple suivant spécifie le nom `index.html` pour la page Web de contenu par défaut et le nom `error.html` pour la page Web d'erreur par défaut. Notez que l'applet de commande ne crée pas ces pages. Elles doivent être [chargées en tant qu'objets Amazon S3](pstools-s3-upload-object.md).

```
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    :
```

## Voir aussi
<a name="pstools-seealso-s3-create-website"></a>
+  [AWS Services d'appel dans le Outils AWS pour PowerShell](pstools-using.md) 
+  [Autorisation PutBucketWebsite (Référence d'API Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTwebsite.html) 
+  [Autorisation PutBucketACL (Référence d'API Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html) 

# Charger les objets sur un compartiment Amazon S3
<a name="pstools-s3-upload-object"></a>

Utilisez l'applet de commande `Write-S3Object` pour charger des fichiers de votre système de fichiers local dans un compartiment Amazon S3 en tant qu'objets. L'exemple ci-dessous crée et charge deux fichiers HTML simples dans un compartiment Amazon S3 et vérifie l'existence des objets chargés. Le paramètre `-File` de `Write-S3Object` spécifie le nom du fichier dans le système de fichiers local. Le paramètre `-Key` spécifie le nom que l'objet correspondant aura dans Amazon S3.

Amazon déduit le type de contenu des objets à partir des extensions de fichier : « .html », dans le cas présent.

```
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
```

 *Options ACL prêtes à l'emploi* 

Les valeurs permettant de spécifier l' ACLs analyse à l'aide des outils pour Windows PowerShell sont les mêmes que celles utilisées par le AWS SDK pour .NET. Notez, cependant, que ces valeurs sont différentes de celles utilisées par l'action du `Put Object` Amazon S3. Les outils pour Windows PowerShell prennent en charge les versions prédéfinies suivantes ACLs :
+ NoACL
+ privé
+ public-read
+ public-read-write
+ aws-exec-read
+ authenticated-read
+ bucket-owner-read
+ bucket-owner-full-control
+ log-delivery-write

Pour plus d'informations sur ces paramètres de listes ACL prêtes à l'emploi, consultez [Présentation de la liste de contrôle d'accès (ACL)](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).

## Remarque concernant le chargement en plusieurs parties
<a name="note-regarding-multipart-upload"></a>

Si vous utilisez l'API Amazon S3 pour charger un fichier qui dépasse 5 Go, vous devez utiliser le chargement en plusieurs parties. Cependant, l'`Write-S3Object`applet de commande fournie par les Outils pour Windows PowerShell peut gérer de manière transparente les téléchargements de fichiers supérieurs à 5 Go.

### Test du site Web
<a name="pstools-amazon-s3-test-website"></a>

À ce stade, vous pouvez tester le site Web en y accédant à l'aide d'un navigateur. URLs pour les sites Web statiques hébergés dans Amazon S3, suivez un format standard.

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

Par exemple :

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

### consultez aussi
<a name="pstools-seealso-amazon-s3-test-website"></a>
+  [AWS Services d'appel dans le Outils AWS pour PowerShell](pstools-using.md) 
+  [PutObject (Référence d'API Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html) 
+  [Canned ACLs (référence d'API Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/dev/ACLOverview.html#CannedACL) 

# Suppression d'objets et de compartiments Amazon S3
<a name="pstools-s3-delete-website"></a>

Cette section décrit comment supprimer le site Web que vous avez créé dans les sections précédentes. Vous pouvez supprimer simplement les objets des fichiers HTML, puis supprimer le compartiment Amazon S3 du site.

Exécutez d'abord l'applet de commande `Remove-S3Object` pour supprimer les objets des fichiers HTML du compartiment Amazon S3.

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

La réponse `False` est un artefact attendu de la façon dont Amazon S3 traite la demande. Dans ce contexte, elle n'indique pas de problème.

Exécutez ensuite l'applet de commande `Remove-S3Bucket` pour supprimer le compartiment Amazon S3 désormais vide du site.

```
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    :
```

Dans les versions 1.1 et ultérieures de Outils AWS pour PowerShell, vous pouvez ajouter le `-DeleteBucketContent` paramètre to`Remove-S3Bucket`, qui supprime d'abord tous les objets et toutes les versions d'objets du compartiment spécifié avant d'essayer de supprimer le compartiment lui-même. Selon le nombre d'objets ou versions d'objet du compartiment, cette opération peut prendre un certain temps. Dans les versions des outils pour Windows PowerShell antérieures à 1.1, le compartiment devait être vide avant de `Remove-S3Bucket` pouvoir le supprimer.

**Note**  
À moins que vous n'ajoutiez le `-Force` paramètre, vous Outils AWS pour PowerShell invite à confirmer avant l'exécution de l'applet de commande.

## consultez aussi
<a name="pstools-seealso-amazon-s3-delete-website"></a>
+  [AWS Services d'appel dans le Outils AWS pour PowerShell](pstools-using.md) 
+  [Delete Object (Référence d'API Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectDELETE.html) 
+  [DeleteBucket (Référence d'API Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketDELETE.html) 

# Charger du contenu du texte en ligne sur Amazon S3
<a name="pstools-s3-upload-in-line-text"></a>

L'applet de commande `Write-S3Object` permet de charger du contenu de texte en ligne dans Amazon S3. Avec le paramètre `-Content` (alias `-Text`), vous pouvez spécifier le contenu texte qui doit être chargé dans Amazon S3, sans avoir besoin de le placer d'abord dans un fichier. Le paramètre accepte les chaînes d'une ligne simples, ainsi que, comme ici, les chaînes contenant plusieurs lignes.

```
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 et Tools pour Windows PowerShell
<a name="pstools-ec2"></a>

Vous pouvez effectuer des tâches courantes liées à Amazon à EC2 l'aide du Outils AWS pour PowerShell.

Les exemples de commandes présentés ici supposent que vous avez défini des informations d'identification par défaut et une région par défaut pour votre PowerShell session. Par conséquent, nous n'incluons pas d'informations d'identification ou de région lorsque nous appelons les applets de commande. Pour plus d'informations, consultez [Authentification avec AWS](creds-idc.md) et [AWS Région](pstools-installing-specifying-region.md).

**Topics**
+ [Créer une paire de clés](pstools-ec2-keypairs.md)
+ [Créer un groupe de sécurité](pstools-ec2-sg.md)
+ [Rechercher une AMI](pstools-ec2-get-amis.md)
+ [Lancer une instance .](pstools-ec2-launch.md)

# Création d'une paire de clés
<a name="pstools-ec2-keypairs"></a>

L'`New-EC2KeyPair`exemple suivant crée une paire de clés et la stocke dans la PowerShell variable `$myPSKeyPair` 

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

Associez l'objet paire de clés à l'applet de commande `Get-Member` pour afficher la structure de l'objet.

```
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;}
```

Associez l'objet paire de clés à l'applet de commande `Format-List` pour afficher les valeurs des membres `KeyName`, `KeyFingerprint` et `KeyMaterial`. (La sortie a été tronquée pour des raisons de lisibilité.)

```
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-----
```

Le membre `KeyMaterial` stocke la clé privée de la paire de clés. La clé publique est stockée dans AWS. Vous ne pouvez pas récupérer la clé publique auprès de AWS, mais vous pouvez vérifier la `KeyFingerprint` clé publique en comparant la clé privée à celle renvoyée par la clé publique. AWS 

## Affichage de l'empreinte de votre paire de clés
<a name="get-ec2keypair"></a>

Vous pouvez utiliser l'applet de commande `Get-EC2KeyPair` pour afficher l'empreinte de votre paire de clés.

```
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
```

## Stockage de votre clé privée
<a name="store-ec2keypair"></a>

Pour stocker la clé privée dans un fichier, associez le membre `KeyFingerMaterial` à l'applet de commande `Out-File`.

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

Vous devez spécifier `-Encoding ascii` lors de l'écriture de la clé privée dans un fichier. Dans le cas contraire, des outils comme `openssl` peuvent ne pas être en mesure de lire le fichier correctement. Vous pouvez vérifier que le format du fichier obtenu est correct en utilisant une commande telle que la commande suivante :

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

(L'`openssl`outil n'est pas inclus dans le Outils AWS pour PowerShell ou le AWS SDK pour .NET.)

## Suppression de votre paire de clés
<a name="remove-ec2keypair"></a>

Vous avez besoin de votre paire de clés pour lancer une instance et vous y connecter. Lorsque vous aurez terminé d'utiliser une paire de clés, vous pourrez la supprimer. Pour supprimer la clé publique de AWS, utilisez l'`Remove-EC2KeyPair`applet de commande. Lorsque vous y serez invité, appuyez sur `Enter` pour supprimer la paire de clés.

```
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"):
```

La variable existe toujours dans la PowerShell session en cours et contient toujours les informations relatives aux paires de clés. `$myPSKeyPair` Le fichier `myPSKeyPair.pem` existe également. Cependant, la clé privée n'est plus valide, car la clé publique de la paire de clés n'est plus stockée dans AWS.

# Création d'un groupe de sécurité à l'aide de Windows PowerShell
<a name="pstools-ec2-sg"></a>

Vous pouvez utiliser le Outils AWS pour PowerShell pour créer et configurer un groupe de sécurité. La réponse est l'ID du groupe de sécurité.

Si vous devez vous connecter à votre instance, vous devez configurer le groupe de sécurité afin d'autoriser le trafic SSH (Linux) ou le trafic RDP (Windows).

**Topics**
+ [Prérequis](#sg-prerequisites)
+ [Création d'un groupe de sécurité pour EC2 -VPC](#new-ec2securitygroup-vpc)

## Prérequis
<a name="sg-prerequisites"></a>

Vous aurez besoin de l'adresse IP publique de votre ordinateur, en notation CIDR. Vous pouvez obtenir l'adresse IP publique de votre ordinateur local à l'aide d'un service. Par exemple, Amazon fournit le service suivant : [http://checkip.amazonaws.com/](http://checkip.amazonaws.com/) ou [https://checkip.amazonaws.com/](https://checkip.amazonaws.com/). Pour trouver un autre service qui fournit votre adresse IP, utilisez l'expression de recherche « what is my IP address » (quelle est mon adresse IP). Si votre connexion s'effectue via un fournisseur de services Internet (ISP) ou derrière un pare-feu sans adresse IP statique, vous devez déterminer la plage d'adresses IP pouvant être utilisée par les ordinateurs clients.

**Avertissement**  
Si vous spécifiez `0.0.0.0/0`, vous autorisez le trafic à partir de n'importe quelle adresse IP dans le monde. Pour les protocoles SSH et RDP, vous pouvez considérer que cette solution est acceptable pour une brève durée dans un environnement de test, mais elle n'est pas sécurisée pour les environnements de production. En production, assurez-vous d'autoriser l'accès uniquement à partir de l'adresse IP individuelle ou de la plage d'adresses appropriée.

## Création d'un groupe de sécurité pour EC2 -VPC
<a name="new-ec2securitygroup-vpc"></a>

**Avertissement**  
EC2-Classic a été retiré le 15 août 2022. Nous vous recommandons de migrer de EC2 -Classic vers un VPC. Pour plus d'informations, consultez le billet de blog intitulé « [EC2Classic Networking is Retiring — Here's How to](https://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/) Prepare ».

L'exemple `New-EC2SecurityGroup` suivant ajoute le paramètre `-VpcId` pour créer un groupe de sécurité pour le VPC spécifié.

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

Pour afficher la configuration initiale du groupe de sécurité, utilisez l'applet de commande `Get-EC2SecurityGroup`. Par défaut, le groupe de sécurité d'un VPC inclut une règle qui autorise la totalité du trafic sortant. Notez que vous ne pouvez pas référencer un groupe de sécurité pour EC2 -VPC par son nom.

```
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                : {}
```

Pour définir les autorisations pour le trafic entrant sur le port TCP 22 (SSH) et le port TCP 3389, utilisez l'applet de commande `New-Object`. L'exemple de script suivant définit les autorisations pour les ports TCP 22 et 3389 à partir d'une seule adresse IP, `203.0.113.25/32`.

```
$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 )
```

Pour vérifier que le groupe de sécurité a été mis à jour, utilisez à nouveau l'applet de commande `Get-EC2SecurityGroup`.

```
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                : {}
```

Pour afficher les règles de trafic entrant, vous pouvez récupérer la propriété `IpPermissions` de l'objet de collection renvoyé par la commande précédente.

```
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}
```

# Rechercher une image de machine Amazon à l'aide de Windows PowerShell
<a name="pstools-ec2-get-amis"></a>

Lorsque vous lancez une EC2 instance Amazon, vous spécifiez une Amazon Machine Image (AMI) qui servira de modèle pour l'instance. Cependant, IDs pour AWS Windows, cela AMIs change fréquemment car AWS fournit les nouveautés AMIs avec les dernières mises à jour et améliorations de sécurité. Vous pouvez utiliser l'[Get-EC2Image](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-EC2Image.html)applet de commande pour rechercher le Windows actuel AMIs et obtenir le sien. IDs

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

L'`Get-EC2Image`applet de commande extrait une liste des éléments AMIs que vous pouvez utiliser.

Utilisez le `-Owner` paramètre avec la valeur du tableau `amazon, self` afin de `Get-EC2Image` récupérer uniquement les informations AMIs qui appartiennent à Amazon ou à vous. Dans ce contexte, *vous* faites référence à l'utilisateur dont vous avez utilisé les informations d'identification pour appeler l'applet de commande.

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

Vous pouvez délimiter les résultats à l'aide du paramètre `-Filter`. Pour spécifier le filtre, créez un objet de type `Amazon.EC2.Model.Filter`. Par exemple, utilisez le filtre suivant pour afficher uniquement Windows AMIs.

```
$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
```

Voici un exemple de l'une des commandes AMIs renvoyées par l'applet de commande ; le résultat réel de la commande précédente fournit des informations pour de nombreuses commandes. 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
```

**Note**  
La version 4 de l'applet de commande Outils AWS pour PowerShell a fourni l'`Get-EC2ImageByName`applet de commande pour filtrer la liste des modèles AMIs par nom. Pour la version 5 des outils, utilisez plutôt l'applet de commande [Get- SSMLatest EC2 Image](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-SSMLatestEC2Image.html).

# Lancer une EC2 instance Amazon à l'aide de Windows PowerShell
<a name="pstools-ec2-launch"></a>

Pour lancer une EC2 instance Amazon, vous avez besoin de la paire de clés et du groupe de sécurité que vous avez créés dans les sections précédentes. Vous avez également besoin de l'ID d'une Amazon Machine Image (AMI). Pour plus d’informations, consultez la documentation de suivante :
+  [Création d'une paire de clés](pstools-ec2-keypairs.md) 
+  [Création d'un groupe de sécurité à l'aide de Windows PowerShell](pstools-ec2-sg.md) 
+  [Rechercher une image de machine Amazon à l'aide de Windows PowerShell](pstools-ec2-get-amis.md) 

**Important**  
Si vous lancez une instance non comprise dans l'offre gratuite, vous serez facturé dès le lancement de l'instance et pendant toute la durée d'exécution de l'instance, même si elle demeure inactive.

**Topics**
+ [Lancement d'une instance dans un VPC](#new-ec2instance-vpc)
+ [Lancement d'une instance Spot dans un VPC](#new-ec2instance-spot)

## Lancement d'une instance dans un VPC
<a name="new-ec2instance-vpc"></a>

**Avertissement**  
EC2-Classic a été retiré le 15 août 2022. Nous vous recommandons de migrer de EC2 -Classic vers un VPC. Pour plus d'informations, consultez le billet de blog intitulé « [EC2Classic Networking is Retiring — Here's How to](https://aws.amazon.com/blogs/aws/ec2-classic-is-retiring-heres-how-to-prepare/) Prepare ».

La commande suivante crée une seule instance `m1.small` dans le sous-réseau privé spécifié. Le groupe de sécurité doit être valide pour le sous-réseau spécifié.

```
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       : {}
```

Au départ, votre instance est à l'état `pending`, mais elle passe à l'état `running` en quelques minutes. Pour afficher les informations sur votre instance, utilisez l'applet de commande `Get-EC2Instance`. Si vous avez plusieurs instances, vous pouvez filtrer les résultats sur l'ID de réservation à l'aide du paramètre `Filter`. Tout d'abord, créez un objet de type `Amazon.EC2.Model.Filter`. Ensuite, appelez `Get-EC2Instance` qui utilise le filtre, puis affiche la propriété `Instances`.

```
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
```

## Lancement d'une instance Spot dans un VPC
<a name="new-ec2instance-spot"></a>

L'exemple de script suivant demande une instance Spot dans le sous-réseau spécifié. Le groupe de sécurité doit être un que vous avez créé pour le VPC qui contient le sous-réseau spécifié.

```
$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 et Outils AWS pour PowerShell
<a name="pstools-lambda"></a>

À l'aide du [AWSLambdaPSCore](https://www.powershellgallery.com/packages/AWSLambdaPSCore)module, vous pouvez développer des AWS Lambda fonctions dans PowerShell Core 6.0 à l'aide du moteur d'exécution .NET Core 2.1. PowerShell les développeurs peuvent gérer les AWS ressources et écrire des scripts d'automatisation dans l' PowerShell environnement à l'aide de Lambda. PowerShell le support dans Lambda vous permet d'exécuter PowerShell des scripts ou des fonctions en réponse à n'importe quel événement Lambda, tel qu'un événement Amazon S3 ou un événement planifié par Amazon. CloudWatch Le AWSLambda PSCore module est un AWS module distinct pour PowerShell ; il ne fait pas partie du Outils AWS pour PowerShell, et l'installation du AWSLambda PSCore module n'installe pas le Outils AWS pour PowerShell.

Après avoir installé le AWSLambda PSCore module, vous pouvez utiliser toutes les PowerShell applets de commande disponibles (ou développer les vôtres) pour créer des fonctions sans serveur. Le PowerShell module AWS Lambda Tools for inclut des modèles de projet pour les applications sans serveur PowerShell basées sur le serveur, ainsi que des outils pour publier des projets. AWS

AWSLambdaPSCore le support des modules est disponible dans toutes les régions qui prennent en charge Lambda. Pour en savoir plus sur les régions prises en charge, consultez le [AWS Tableau des régions](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).

## Conditions préalables
<a name="prerequisites"></a>

Les étapes suivantes sont requises avant de pouvoir installer et utiliser le AWSLambda PSCore module. Pour plus de détails sur ces étapes, consultez la section [Configuration d'un environnement de PowerShell développement](https://docs.aws.amazon.com/lambda/latest/dg/lambda-powershell-setup-dev-environment.html) dans le Guide du AWS Lambda développeur.
+  **Installez la bonne version de PowerShell** — Le support de Lambda pour PowerShell est basé sur la version multiplateforme PowerShell Core 6.0. Vous pouvez développer des fonctions PowerShell Lambda sous Windows, Linux ou Mac. Si au moins cette version de n'est pas PowerShell installée, les instructions sont disponibles sur le [site Web de PowerShell documentation Microsoft](https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell).
+  **Installation du SDK .NET Core 2.1** : Core étant basé sur .NET PowerShell Core, le support Lambda utilise le même environnement d'exécution Lambda .NET Core 2.1 PowerShell pour les fonctions .NET Core et Lambda. PowerShell Les applets de commande de PowerShell publication Lambda utilisent le SDK .NET Core 2.1 pour créer le package de déploiement Lambda. Le kit SDK .NET Core 2.1 est disponible à partir du [Centre de téléchargement Microsoft](https://www.microsoft.com/net/download). Veillez à installer le kit SDK, et non le runtime.

## Installation du AWSLambda PSCore module
<a name="install-the-awslambdapscore-module"></a>

Une fois les prérequis remplis, vous êtes prêt à installer le AWSLambda PSCore module. Exécutez la commande suivante dans une session PowerShell Core.

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

Vous êtes prêt à commencer à développer des fonctions Lambda dans. PowerShell Pour plus d'informations sur la façon de démarrer, voir [Modèle de programmation pour la création de fonctions Lambda PowerShell](https://docs.aws.amazon.com/lambda/latest/dg/powershell-programming-model.html) dans AWS Lambda le Guide du développeur.

## Voir aussi
<a name="see-also"></a>
+  [Annonce du support Lambda pour PowerShell Core sur le blog des développeurs AWS](https://aws.amazon.com/blogs/developer/announcing-lambda-support-for-powershell-core/) 
+  [AWSLambdaPSCore module sur le site Web de PowerShell la galerie](https://www.powershellgallery.com/packages/AWSLambdaPSCore/1.0.0.2) 
+  [Configuration d'un environnement PowerShell de développement](https://docs.aws.amazon.com/lambda/latest/dg/lambda-powershell-setup-dev-environment.html) 
+ [AWS Outils Lambda pour Powershell sur GitHub](https://github.com/aws/aws-lambda-dotnet/tree/master/PowerShell)
+  [AWS Console Lambda](https://console.aws.amazon.com/lambda/home) 

# Amazon SQS, Amazon SNS et outils pour Windows PowerShell
<a name="pstools-sqs-queue-sns-topic"></a>

Cette section fournit des exemples qui montrent comment :
+ Créer une file d'attente Amazon SQS et obtenir l'ARN (Amazon Resource Name) de la file d'attente.
+ Créer une rubrique Amazon SNS.
+ Accordez les autorisations à la rubrique SNS afin qu'elle puisse envoyer des messages à la file d'attente.
+ Abonner la file d'attente à la rubrique SNS
+ Donnez aux utilisateurs ou aux AWS comptes IAM l'autorisation de publier sur la rubrique SNS et de lire les messages de la file d'attente SQS.
+ Vérifiez les résultats en publiant un message dans la rubrique et en lisant le message à partir de la file d'attente.

## Créer une file d'attente Amazon SQS et obtenir l'ARN de la file d'attente
<a name="pstools-create-sqs-queue"></a>

La commande suivante crée une file d'attente SQS dans votre région par défaut. La sortie affiche l'URL de la nouvelle file d'attente.

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

La commande suivante récupère l'ARN de la file d'attente.

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

## Créer une rubrique Amazon SNS
<a name="pstools-create-sns-topic"></a>

La commande suivante crée une rubrique SNS dans votre région par défaut et renvoie l'ARN de la nouvelle rubrique.

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

## Accorder les autorisations à la rubrique SNS
<a name="pstools-permissions-sns-topic"></a>

L'exemple de script suivant crée à la fois une file d'attente SQS et une rubrique SNS, et accorde des autorisations à la rubrique SNS afin qu'elle puisse envoyer des messages à la file d'attente SQS :

```
# 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 }
```

## Abonner la file d'attente à la rubrique SNS
<a name="pstools-subscribe-queue-topic"></a>

La commande suivante abonne la file d'attente `myQueue` à la rubrique SNS `myTopic` et renvoie l'ID d'abonnement :

```
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
```

## Accorder les autorisations
<a name="pstools-permissions-publish-read"></a>

La commande suivante donne l'autorisation d'effectuer l'action `sns:Publish` sur la rubrique `myTopic` :

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

La commande suivante donne l'autorisation d'effectuer les actions `sqs:ReceiveMessage` et `sqs:DeleteMessage` sur la file d'attente `myQueue`.

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

## Vérifier les résultats
<a name="pstools-verify-publish-read"></a>

La commande suivante teste votre nouvelle file d'attente et votre rubrique en publiant un message dans la rubrique SNS `myTopic`, puis renvoie le `MessageId`.

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

La commande suivante récupère le message dans la file d'attente SQS `myQueue` et l'affiche.

```
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 à partir du AWS Tools for Windows PowerShell
<a name="pstools-cw"></a>

Cette section montre un exemple d'utilisation des Outils pour Windows PowerShell pour publier des données métriques personnalisées sur CloudWatch.

Cet exemple suppose que vous avez défini des informations d'identification par défaut et une région par défaut pour votre PowerShell session. 

## Publiez une métrique personnalisée sur votre CloudWatch tableau de bord
<a name="pstools-cw-custom-metric-publish"></a>

Le PowerShell code suivant initialise un CloudWatch `MetricDatum` objet et le publie dans le service. Vous pouvez voir le résultat de cette opération en accédant à la [CloudWatch console.](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
```

Notez ce qui suit :
+ Les informations de date et d'heure que vous utilisez pour initialiser `$dat.Timestamp` doivent être au format UTC.
+ La valeur que vous utilisez pour initialiser `$dat.Value` peut être une valeur de chaîne entourée de guillemets ou une valeur numérique (sans guillemets). L'exemple illustre une valeur de chaîne.

## Voir aussi
<a name="see-also"></a>
+  [AWS Services d'appel dans le Outils AWS pour PowerShell](pstools-using.md) 
+  [AmazonCloudWatchClient. PutMetricData](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/CloudWatch/MCloudWatchPutMetricDataPutMetricDataRequest.html)(Référence du SDK .NET)
+  [MetricDatum](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html)(Référence de l'API de service)
+  [ CloudWatch Console Amazon](https://console.aws.amazon.com/cloudwatch/home) 

# Utilisation du ClientConfig paramètre dans les applets de commande
<a name="pstools-clientconfig"></a>

Le paramètre `ClientConfig` permet de spécifier certains paramètres de configuration lorsque vous vous connectez à un service. La plupart des propriétés possibles de ce paramètre sont définies dans la [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TClientConfig.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TClientConfig.html)classe, qui est héritée dans les AWS services APIs for. Pour un exemple d'héritage simple, consultez la classe [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Keyspaces/TKeyspacesConfig.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Keyspaces/TKeyspacesConfig.html). En outre, certains services définissent des propriétés supplémentaires qui ne sont appropriées que pour ce service. Pour obtenir un exemple de propriétés définies supplémentaires, consultez la classe [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Config.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Config.html), plus précisément la propriété `ForcePathStyle`.

## Utilisation du paramètre `ClientConfig`
<a name="clientconfig-operation"></a>

Pour utiliser le `ClientConfig` paramètre, vous pouvez le spécifier sur la ligne de commande sous forme d'`ClientConfig`objet ou utiliser le PowerShell splatting pour transmettre une collection de valeurs de paramètres à une commande sous forme d'unité. Ces méthodes sont présentées dans les exemples suivants. Les exemples supposent que le module `AWS.Tools.S3` a été installé et importé, et que vous disposez d'un profil d'informations d'identification `[default]` avec les autorisations appropriées.

******Définition d'un objet `ClientConfig`**

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

**Ajout de `ClientConfig` propriétés à l'aide d' PowerShelléclaboussures**

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

Get-S3Object @params
```

## Utilisation d'une propriété non définie
<a name="clientconfig-undefined"></a>

Lorsque vous utilisez le PowerShell splatting, si vous spécifiez une `ClientConfig` propriété qui n'existe pas, elle Outils AWS pour PowerShell ne détecte pas l'erreur avant l'exécution, date à laquelle elle renvoie une exception. En modifiant l'exemple ci-dessus :

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

Get-S3Object @params
```

Cet exemple produit une exception semblable à la suivante :

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

## Spécifier le Région AWS
<a name="clientconfig-region"></a>

Vous pouvez utiliser le `ClientConfig` paramètre Région AWS pour définir la commande. La région est définie à travers la propriété `RegionEndpoint`. Outils AWS pour PowerShell Calcule la région à utiliser en fonction de la priorité suivante :

1. Paramètre `-Region`

1. Région transmise dans le paramètre `ClientConfig`

1. État de PowerShell la session

1. Le AWS `config` fichier partagé

1. Variables d'environnement

1. Les métadonnées de l' EC2 instance Amazon, si elles sont activées.