

 Le [guide de référence de l'API AWS SDK pour JavaScript V3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) décrit en détail toutes les opérations de l'API pour la AWS SDK pour JavaScript version 3 (V3). 

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.

# Publication de messages sur Amazon SNS
<a name="sns-examples-publishing-messages"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/fr_fr/sdk-for-javascript/v3/developer-guide/images/nodeicon.png)

**Cet exemple de code Node.js présente :**
+ Comment publier des messages sur une rubrique Amazon SNS.

## Scénario
<a name="sns-examples-publishing-messages-scenario"></a>

Dans cet exemple, vous utilisez une série de modules Node.js pour publier des messages depuis Amazon SNS vers des points de terminaison, des e-mails ou des numéros de téléphone thématiques. Les modules Node.js utilisent le SDK pour JavaScript envoyer des messages en utilisant cette méthode de la classe `SNS` client :
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/PublishCommand/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-sns/Class/PublishCommand/)

## Tâches prérequises
<a name="sns-examples-publishing-messages-prerequisites"></a>

Pour configurer et exécuter cet exemple, vous devez d'abord :
+ Configurez l'environnement du projet pour exécuter ces TypeScript exemples de nœuds et installez les modules requis AWS SDK pour JavaScript et tiers. Suivez les instructions indiquées sur [ GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/README.md).
+ Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur la fourniture d'un fichier d'informations d'identification [partagé, consultez la section Fichiers de configuration et d'informations d'identification](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html) partagés dans le *guide de référence AWS SDKs et Tools*.

**Important**  
Ces exemples montrent comment utiliser des objets de service import/export client et des commandes en utilisant ECMAScript6 (ES6).  
Cela nécessite la version 13.x ou supérieure de Node.js. Pour télécharger et installer la dernière version de Node.js, consultez la section [Téléchargements de Node.js.](https://nodejs.org/en/download) .
Si vous préférez utiliser la syntaxe CommonJS, consultez[JavaScript ES6Syntaxe /CommonJS](sdk-example-javascript-syntax.md).

## Publication d'un message dans une rubrique SNS
<a name="sns-examples-publishing-text-messages"></a>

Dans cet exemple, utilisez un module Node.js pour publier un message sur une rubrique Amazon SNS.

Créez un `libs` répertoire et créez un module Node.js avec le nom du fichier`snsClient.js`. Copiez-collez le code ci-dessous pour créer l'objet client Amazon SNS. Remplacez *REGION* par votre AWS région.

```
import { SNSClient } from "@aws-sdk/client-sns";

// The AWS Region can be provided here using the `region` property. If you leave it blank
// the SDK will default to the region set in your AWS config.
export const snsClient = new SNSClient({});
```

Cet exemple de code se trouve [ici GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/libs/snsClient.js).

 Créez un module Node.js nommé `publish-topic.js`. Configurez le kit SDK comme illustré précédemment.

Créez un objet contenant les paramètres de publication d'un message, y compris le texte du message et le nom de ressource Amazon (ARN) d'Amazon SNStopic. Pour plus de détails sur les attributs SMS disponibles, voir [Définir SMSAttributes](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#setSMSAttributes-property).

Transmettez les paramètres à la `PublishCommand` méthode de la classe `SNS` cliente. Créez une fonction asynchrone invoquant un objet de service client Amazon SNS, en transmettant l'objet de paramètres. 

**Note**  
*MESSAGE\$1TEXT*Remplacez-le par le texte du message et *TOPIC\$1ARN* par l'ARN de la rubrique SNS.

```
import { PublishCommand } from "@aws-sdk/client-sns";
import { snsClient } from "../libs/snsClient.js";

/**
 * @param {string | Record<string, any>} message - The message to send. Can be a plain string or an object
 *                                                 if you are using the `json` `MessageStructure`.
 * @param {string} topicArn - The ARN of the topic to which you would like to publish.
 */
export const publish = async (
  message = "Hello from SNS!",
  topicArn = "TOPIC_ARN",
) => {
  const response = await snsClient.send(
    new PublishCommand({
      Message: message,
      TopicArn: topicArn,
    }),
  );
  console.log(response);
  // {
  //   '$metadata': {
  //     httpStatusCode: 200,
  //     requestId: 'e7f77526-e295-5325-9ee4-281a43ad1f05',
  //     extendedRequestId: undefined,
  //     cfId: undefined,
  //     attempts: 1,
  //     totalRetryDelay: 0
  //   },
  //   MessageId: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
  // }
  return response;
};
```

Pour exécuter l'exemple, entrez ce qui suit à l'invite de commande.

```
node publish-topic.js
```

Cet exemple de code se trouve [ici GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascriptv3/example_code/sns/actions/publish-topic.js).