Das Wetter ist schlecht. Das ist Yoshida. Ich mag Lambda besonders für AWS-Services. Legen Sie beiseite, ob Sie es beherrschen Liegt es daran, dass Lambda kürzlich Python verfügbar gemacht hat?
Weil ich solche Angst hatte, versuchte ich ungefähr 4 Stunden lang mein Bestes mit Python.
Lambda wird mit awsSNS als Auslöser ausgelöst und SNS-Nachrichten werden auf Twitter gepostet.
_ Das Bild sieht so aus _
Dieses Mal werde ich die Beispiel-SNS-Nachricht verwenden, um "Hallo von SNS!" In mein Konto zu posten.
Machen Sie sich bereit für die Arbeit mit Twitter
https://dev.twitter.com/
Wenn Sie auf die oben genannte URL zugreifen, gelangen Sie zur Twitter-Entwicklerseite.
Wenn Sie Twitter-Apps registriert haben oder dies vor langer Zeit getan haben, hier
Wenn Sie sich nicht in Ihrem Twitter-Konto angemeldet haben, klicken Sie oben rechts auf Anmelden, um sich anzumelden.
Wenn Sie mit dem Schreiben fertig sind, scrollen Sie nach unten und wenn Sie die Aufmerksamkeit lesen können, lesen Sie und stimmen Sie zu.
Wenn Sie die oben genannten vier Schlüssel bestätigen können, ist die Vorbereitung auf Twitter abgeschlossen.
Jetzt, da Twitter fertig ist, werde ich es sofort schreiben.
Erstellen Sie zunächst ein Arbeitsverzeichnis und installieren Sie die externen Module, die darin verwendet werden sollen. Diesmal habe ich es direkt unter dem Haus erstellt. Erstellen Sie nach dem Erstellen des Verzeichnisses eine Datei, die das Skript beschreibt.
mkdir lambda_function`
cd lambda_function
vi function.py
Installieren Sie als Nächstes das in Lambda verwendete externe Modul. Dieses Mal werden wir ein Modul namens "Requests-OAuthlib" verwenden, also installieren Sie es.
pip install requests_oauthlib -t ./
___ Drücken Sie den Befehl in dem Verzeichnis, das Sie gerade erstellt haben. ___
Sie kann installiert werden, indem Sie das aktuelle Verzeichnis nach der Option ___- t angeben. ___
3.fnction.py
Hier ist das Skript, das ich dieses Mal geschrieben habe
#### **`function.py`**
```python
from requests_oauthlib import OAuth1Session
# Consumer Key : CK
# Consumer Secret : CS
# Access Token : AT
# Accesss Token Secert : AS
CK = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
CS = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
AT = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
AS = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
URL = 'https://api.twitter.com/1.1/statuses/update.json'
def handler(event, context):
msg = event['Records'][0]['Sns']['Message']
params = {"status": msg }
twitter = OAuth1Session(CK, CS, AT, AS)
req = twitter.post(URL, params = params)
if req.status_code == 200:
return msg
else:
return req.status_code
Dank dieses Skripts wurde Python Virgin zu 4 Stunden Python-Geschichte befördert. Nein, es funktioniert nicht! Das allein (Schweiß Die URL scheint eine spezielle URL zum Posten zu sein.
Lassen Sie uns die diesmal erstellte Umgebung komprimieren und zu AWS bringen Beachten Sie, dass ___ Sie wütend werden, wenn Sie das Modul nur finden können, wenn Sie den Inhalt des erstellten Verzeichnisses ___ komprimieren. Ich war ungefähr eine Stunde lang süchtig danach ...
cd lambda_function
zip -r myfunc.zip ./
Der Name der zu komprimierenden Zip-Datei ist angemessen.
![AWS_マネジメントコンソール.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/fa003804-a627-f200-a1ba-b3288da87c1f.jpeg "AWS_マネジメントコンソール.jpg ")
![AWS_Lambda.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/4a4a5aab-f73f-3f6a-cbbb-5030b5c808f6.jpeg "AWS_Lambda.jpg ")
![AWS_Lambda02.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/6e78ebd2-2b01-0ad7-6d94-c43398432052.jpeg "AWS_Lambda02.jpg ")
![AWS_Lambda03.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/f4c24b7c-61ee-e30e-fe1b-d361ae627909.jpeg "AWS_Lambda03.jpg ")
#### Der Punkt ist der Name des Handlers. Der Grund, ein function.handler zu werden, ist wie geschrieben.
Führen Sie danach die Funktion "Erstellen" aus, und Sie sind fertig.
4.Test
Geben Sie die Testquelle als SNS an. Dann ...
![AWS_Lambda-kekka.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/e182de85-c722-d23b-c4a0-6b1c7b8a31e7.jpeg "AWS_Lambda-kekka.jpg ")
Das Protokoll ist ordnungsgemäß gelöscht.
Wenn Sie Twitter überprüfen ...
![ミッスッター_ヨーダ__Yuki_BB3_さん___Twitter.jpg](https://qiita-image-store.s3.amazonaws.com/0/52141/f2164b23-0446-facc-ebab-f843fe508a01.jpeg "ミッスッター_ヨーダ__Yuki_BB3_さん___Twitter.jpg ")
Es ist fertig!
Bei dieser App wurde beim Versuch, genau dieselbe Testnachricht zu senden, ein 403-Fehler angezeigt, und ich konnte keine Beiträge verfassen. Ist es eine Spezifikation?
---
Ich habs gemacht! !! !! !!
Es ist fertig!
Wenn Sie beispielsweise BOTO verwenden, um die in der AWS-Umgebung eingerichtete EC2-Nummer zu twittern, können Sie verhindern, dass Sie vergessen, sie zu löschen, oder?
Unabhängig davon, wofür ich es verwende, bin ich froh, dass ich etwas gemacht habe, das mit Python funktioniert.
### Referenz
[Zugriff auf die Twitter-API mit Python](http://qiita.com/yubais/items/dd143fe608ccad8e9f85)
[Erstellen einer Twitter-Anwendung (Verbraucherschlüssel, Verbrauchergeheimnis, Zugriffstoken, geheime Bestätigungsmethode für Zugriffstoken)](http://website-planner.com/twitter%E3%82%A2%E3%83%97%E3% 83% AA% E3% 82% B1% E3% 83% BC% E3% 82% B7% E3% 83% A7% E3% 83% B3% E3% 81% AE% E4% BD% 9C% E6% 88% 90% EF% BC% 88Konsumentenschlüssel% E3% 80% 81Konsumentengeheimnis% E3% 80% 81Zugriffstoken% E3% 80% 81Zugriffstokengeheimnis /)
Recommended Posts