我對使用AWS SNS有一個簡短的問題。ec2實例部署在us-west-1時使用AWS SNS
我在us-west-1(N.California)部署了一個EC2(t2.micro,Linux)實例。我寫了一個使用boto3的python腳本來發送簡單的文本消息到我的手機。後來我發現,對於部署在我們以外的實例 - 東1(N.Virginia),沒有SNS服務。直到這一點它是有道理的,因爲我看到這個下面的錯誤,當我執行我的python腳本,因爲該區域被定義爲「us-west-1」aws配置(AWS cli)和我的python腳本。
botocore.errorfactory.InvalidParameterException: An error occurred (InvalidParameter) when calling the Publish operation: Invalid parameter: PhoneNumber Reason:
但測試,當我在AWS conifgure,在我的Python腳本改「區域」,以「美東1」,我的劇本推短信到我的手機。這不是很奇怪嗎?任何人都可以解釋爲什麼這只是通過改變AWS cli和我的python腳本中的區域來工作,儘管我的實例仍然在us-west-1中,而我在N.california地區的SNS儀表板上看不到「發佈文本消息」選項?
正在用us-east-1重新定義aws cli,類似於在我們東部一個地區部署一個新實例嗎?我不這麼認爲。糾正我,如果我錯了。或者就像我們在西方1有一個實例,但只是使用我們東1的SNS服務?請說明一下。
這是我的python腳本,如果有人需要看它(它是一個簡單的片段)。
import boto3
def send_message():
# Create an SNS client
client = boto3.client("sns", aws_access_key_id="XXXX", aws_secret_access_key="XXXX", region_name="us-east-1")
# Send your sms message.
client.publish(PhoneNumber="XXXX",Message="Hello World!")
if __name__ == '__main__':
send_message()
我因此未產生任何話題。 – chaitanya
你不需要創建一個主題來發布SNS消息到一個電話號碼 – Milk