View a markdown version of this page

Impostazione delle preferenze di messaggistica SMS in Amazon SNS - Amazon Simple Notification Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Impostazione delle preferenze di messaggistica SMS in Amazon SNS

Utilizza Amazon SNS per specificare le preferenze per i messaggi SMS. Ad esempio, puoi specificare se ottimizzare le consegne per costo o affidabilità, il limite di spesa mensile, la registrazione delle consegne e se eseguire la sottoscrizione a report di utilizzo di SMS giornalieri.

Queste preferenze diventano effettive per ogni SMS che invii dal tuo account, ma alcune possono essere sovrascritte all'invio di un singolo messaggio. Per ulteriori informazioni, consulta Pubblicazione di messaggi SMS su un telefono cellulare utilizzando Amazon SNS.

Impostazione delle preferenze per la messaggistica SMS utilizzando Console di gestione AWS

  1. Accedi alla console Amazon SNS.

  2. Scegliere una regione che supporti la messaggistica SMS.

  3. Nel pannello di navigazione, scegli Mobile e poi Messaggi di testo (SMS).

  4. Nella pagina Mobile text messaging (SMS) (Messaggi di testo mobili (SMS)), nella sezione Text messaging preferences (Preferenze per i messaggi di testo), scegliere Edit (Modifica).

  5. Nella pagina Modifica le preferenze per i messaggi di testo, nella sezione Dettagli, effettuare queste operazioni:

    1. Per Default message type (Tipo di messaggio predefinito), scegliere una di queste opzioni:

      • Promozionali: Non-critical messaggi (ad esempio, marketing). Amazon SNS ottimizza la consegna dei messaggi per generare il costo più basso.

      • Transazionale: messaggi critici che supportano le transazioni dei clienti, come le password monouso per l'autenticazione a più fattori. Amazon SNS ottimizza la consegna dei messaggi per ottenere la migliore affidabilità.

      Per informazioni sulle tariffe relative a messaggi promozionali e transazionali, consulta la pagina relativa alle tariffe SMS globali.

    2. In Account spend limit (Limite di spesa per account), digitare l'importo massimo in USD da spendere in messaggi SMS ogni mese di calendario.

      Importante
      • Per impostazione predefinita, la quota di spesa è impostata a 1,00 USD. Se si desidera aumentare la quota di servizio, inviare una richiesta.

      • Se l'importo impostato nella console supera la quota di servizio, Amazon SNS interrompe la pubblicazione di messaggi SMS.

      • Poiché Amazon SNS è un sistema distribuito, blocca l'invio di SMS alcuni minuti dopo il superamento della quota di spesa. Se continui a inviare SMS durante tale intervallo, potresti incorrere in costi che superano la tua quota di spesa.

  6. (Facoltativo) Per Default sender ID (ID mittente predefinito), immettere un ID personalizzato, ad esempio il marchio aziendale, visualizzato come mittente sul dispositivo di ricezione.

    Nota

    Il supporto per gli ID mittente varia in base al paese.

  7. (Facoltativo) Immettere il Amazon S3 bucket name for usage reports (Nome bucket Amazon S3 per i report di utilizzo).

    Nota

    La policy del bucket Amazon S3 deve concedere l'accesso in scrittura ad Amazon SNS.

  8. Scegli Save changes (Salva modifiche).

Impostazione delle preferenze (AWS SDK)

Per impostare le preferenze SMS utilizzando uno degli AWS SDK, utilizza l'azione in tale SDK che corrisponde alla richiesta nell'API Amazon SNS. SetSMSAttributes Con questa richiesta, assegni valori a differenti attributi SMS, come la quota di spesa mensile e il tipo di SMS predefinito (promozionale o transazionale). Per tutti gli attributi SMS, consulta SetSMSAttributes nella Amazon Simple Notification Service API Reference.

I seguenti esempi di codice mostrano come utilizzare. SetSMSAttributes

C++
SDK per C++
Nota

C'è altro su GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS.

Come utilizzare Amazon SNS per impostare l’attributo DefaultSMSType.

//! Set the default settings for sending SMS messages. /*! \param smsType: The type of SMS message that you will send by default. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::SNS::setSMSType(const Aws::String &smsType, const Aws::Client::ClientConfiguration &clientConfiguration) { Aws::SNS::SNSClient snsClient(clientConfiguration); Aws::SNS::Model::SetSMSAttributesRequest request; request.AddAttributes("DefaultSMSType", smsType); const Aws::SNS::Model::SetSMSAttributesOutcome outcome = snsClient.SetSMSAttributes( request); if (outcome.IsSuccess()) { std::cout << "SMS Type set successfully " << std::endl; } else { std::cerr << "Error while setting SMS Type: '" << outcome.GetError().GetMessage() << "'" << std::endl; } return outcome.IsSuccess(); }
  • Per informazioni dettagliate sull’API, consulta SetSMSAttributes nella documentazione di riferimento dell’API AWS SDK per C++ .

CLI
AWS CLI

Impostazione degli attributi dei messaggi SMS

Nell’esempio set-sms-attributes seguente l’ID mittente predefinito per i messaggi SMS viene impostato su MyName.

aws sns set-sms-attributes \ --attributes DefaultSenderID=MyName

Questo comando non produce alcun output.

  • Per informazioni dettagliate sull’API, consulta SetSMSAttributes nella documentazione di riferimento dei comandi della AWS CLI .

Java
SDK per Java 2.x
Nota

C'è dell'altro GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.SetSmsAttributesRequest; import software.amazon.awssdk.services.sns.model.SetSmsAttributesResponse; import software.amazon.awssdk.services.sns.model.SnsException; import java.util.HashMap; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class SetSMSAttributes { public static void main(String[] args) { HashMap<String, String> attributes = new HashMap<>(1); attributes.put("DefaultSMSType", "Transactional"); attributes.put("UsageReportS3Bucket", "janbucket"); SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); setSNSAttributes(snsClient, attributes); snsClient.close(); } public static void setSNSAttributes(SnsClient snsClient, HashMap<String, String> attributes) { try { SetSmsAttributesRequest request = SetSmsAttributesRequest.builder() .attributes(attributes) .build(); SetSmsAttributesResponse result = snsClient.setSMSAttributes(request); System.out.println("Set default Attributes to " + attributes + ". Status was " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } } }
  • Per informazioni dettagliate sull’API, consulta SetSMSAttributes nella documentazione di riferimento dell’API AWS SDK for Java 2.x .

JavaScript
SDK per JavaScript (v3)
Nota

C'è altro su. GitHub Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS.

Creare il client in un modulo separato ed esportarlo.

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({});

Importare l’SDK e i moduli client e chiamare l’API.

import { SetSMSAttributesCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {"Transactional" | "Promotional"} defaultSmsType */ export const setSmsType = async (defaultSmsType = "Transactional") => { const response = await snsClient.send( new SetSMSAttributesCommand({ attributes: { // Promotional – (Default) Noncritical messages, such as marketing messages. // Transactional – Critical messages that support customer transactions, // such as one-time passcodes for multi-factor authentication. DefaultSMSType: defaultSmsType, }, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '1885b977-2d7e-535e-8214-e44be727e265', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // } // } return response; };
PHP
SDK per PHP
Nota

C'è dell'altro GitHub. Trova l’esempio completo e scopri di più sulla configurazione e l’esecuzione nel repository di esempi di codice AWS.

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); try { $result = $SnSclient->SetSMSAttributes([ 'attributes' => [ 'DefaultSMSType' => 'Transactional', ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Impostazione delle preferenze di messaggistica SMS per la consegna in base al Paese

È possibile gestire e controllare il traffico SMS inviando messaggi solo a paesi di destinazione specifici. Ciò garantisce che i messaggi vengano inviati solo ai paesi approvati, evitando addebiti SMS indesiderati. Le seguenti istruzioni utilizzano la configurazione di Amazon Pinpoint Protect per specificare i paesi che desideri consentire o bloccare.

  1. Apri la AWS SMS console all'indirizzo. https://console.aws.amazon.com/sms-voice/

  2. Nel pannello di navigazione, in Panoramica, nella sezione Avvio rapido, scegli Crea una configurazione di protezione.

  3. In Dettagli di configurazione di Protect, inserisci un nome adatto alle aziende per la tua configurazione di protezione (ad esempio, Allow-Only-AU).

  4. Nella sezione Regole nazionali relative agli SMS, seleziona la Region/Country casella di controllo per bloccare l'invio di messaggi a tutti i Paesi supportati.

  5. Deseleziona le caselle di controllo relative ai Paesi in cui desideri inviare messaggi. Ad esempio, per consentire l'invio di messaggi solo in Australia, deseleziona la casella di controllo relativa all'Australia.

  6. Nella sezione Proteggi le associazioni di configurazione, in Tipo di associazione, seleziona Account predefinito. Ciò assicurerà che la configurazione AWS End User Messaging SMS Protect influenzi tutti i messaggi inviati tramite Amazon SNS, Amazon Cognito e la chiamata API Amazon Pinpoint SendMessages.

  7. Scegli la configurazione Create protect per salvare le impostazioni.

    Viene visualizzato il seguente messaggio di conferma:

    Success Protect configuration protect-abc0123456789 has been created.
  8. Accedi alla console Amazon SNS.

  9. Pubblica un messaggio in uno dei paesi bloccati, ad esempio l'India.

    Il messaggio non verrà recapitato. Puoi verificarlo nei registri degli errori di consegna utilizzando CloudWatch. Cerca il gruppo di log sns/region/AccountID/DirectPublishToPhoneNumber/Failureper una risposta simile all'esempio seguente:

    { "notification": { "messageId": "bd59a509-XXXX-XXXX-82f8-fbdb8cb68217", "timestamp": "YYYY-MM-DD XX:XX:XX.XXXX“ }, "delivery": { "destination": "+91XXXXXXXXXX", "smsType": "Transactional", "providerResponse": "Cannot deliver message to the specified destination country", "dwellTimeMs": 85 }, "status": "FAILURE" }