私はAWS Lambda関数からboto3 publishメソッドを使用してSMSメッセージを送信して、SMS経由で問題をユーザーに通知したいと考えています。私のラムダ関数はPythonで書かれており、私はboto3モジュールを使っています。私のラムダ関数はSNSに対する完全な権利を持っています。私は、このコードを持っているAWS Lambda関数でboto3を使用してAWS SNS経由でSMSメッセージを送信するにはどうすればよいですか?
sns = boto3.client('sns')
sns.publish(
PhoneNumber = '+11234567890',
Message = 'Simple text message'
)
boto3 documentationによると、公開方法は、以下のパラメーターを受け入れ、
response = client.publish(
TopicArn='string',
TargetArn='string',
PhoneNumber='string',
Message='string',
Subject='string',
MessageStructure='string',
MessageAttributes={
'string': {
'DataType': 'string',
'StringValue': 'string',
'BinaryValue': b'bytes'
}
}
)
で説明したように、「メッセージ」パラメータ以下の3つのパラメータのいずれかが必要です。 docs:
TopicArn(文字列) - 公開するトピックです。
TopicArnパラメータの値を指定しない場合は、 にPhoneNumberまたはTargetArnパラメータの値を指定する必要があります。
TargetArn(文字列) - TopicArnまたはEndpointArnのいずれかですが、両方ではありません。
TargetArnパラメータに値を指定しない場合は、 にPhoneNumberまたはTopicArnパラメータの値を指定する必要があります。
PhoneNumber(文字列) - 配信する電話番号 SMSメッセージ。 E.164形式を使用します。
PhoneNumberパラメータに値を指定しない場合は、 にTargetArnまたはTopicArnパラメータの値を指定する必要があります。
私のコードが実行されると、パラメータ検証エラーが返されます。 "のPhoneNumber"、のいずれかである必要があります:それは入力中に未知のパラメータ、
を述べている。TopicArn、 TargetArn、>メッセージ、件名、MessageStructure、MessageAttributes」
だから、ドキュメントが示しているようですPhoneNumberは有効なパラメータですが、使用時にエラーが発生し、PhoneNumberが可能なパラメータではないことがエラーからのフィードバックによって示されています。 emのようなSMSメッセージを送信する他の手段があることを知っているAilのゲートウェイやTwilioのようなベンダーが提供するソリューションを提供していますが、私はSNSベースのルートを追求し、どこが間違っているのか理解したいと思います。
これは最終的に機能しましたか?あなたの呼び出しはちょうど私のために働いたように、正しいようです。 – Atifm