
I recently had a talk about what it would take to formally move to
devops within the 9-5. From that talk I was told that I need more Azure
experience so I now have a goal of getting comfortable in Azure like I
am in AWS. Anyway I made a twitter bot using an Azure function so I\'m
going to explain how to get this done and link the articles I used.
***P.S. Before I go forward s/o to everyone that stopped by my random
zoom to chat and help me when I got stuck.***
Create and Azure account
------------------------
This part took the longest for me but you get \$200 credits for free for
the first 30days so [signup](https://azure.microsoft.com/en-us/)
(please). Once this process is complete we are going to build a bot that
will retweet food to your timeline every 5mins. No worries you can
delete all this when your done to save your credit.
Function Setup
--------------
This service is called `Function App` and once we are in we are going to
hit the add button and pick the following things:
Subsctription: *your subscription name*
Resource Group: demo (or app name)
Function App Name: foodie1
Publish: Code
Runtime stack: Python

Then hit `Review + Create` and then `Create`
Get Twitter Credentials
-----------------------
I\'m not really going to walk through this but signup for a twitter api
key [here](https://developer.twitter.com/). Once your in you want to
create an app \> enter all the details they request \> details \> keys
and tokens \> generate the access token and access token secret. Keep
this page open and let\'s move back to Azure.
Adding config variables
-----------------------
Now that your resource is done building click `Go to resource` \>
`Configuration`. At this point you need to have two windows with your
twitter keys from the last step and the `Application settings` screen on
Azure open. Enter the following Key:Value pairs
CONSUMER_KEY:*your consumer key*
CONSUMER_SECRET:*your consumer secret*
ACCESS_TOKEN:*your access token*
ACCESS_TOKEN_SECRET:*your access token secret*
Code Time
---------
Hit the name of your function from the top bar. Then hit the
`New function` button. This should give you a quick start option. I
suggest you go through this path for `VS Code` for the easiest way to
complete this project. *This isn\'t really about the code so please
trust me that this next part works.*
Once you are setup in VS Code replace the `__init__.py` file with the
following code:
import os
import tweepy
import azure.functions as func
def main(mytimer: func.TimerRequest) -> None:
consumer_key = os.environ['CONSUMER_KEY']
consumer_secret = os.environ['CONSUMER_SECRET']
access_token = os.environ['ACCESS_TOKEN']
access_secret = os.environ['ACCESS_TOKEN_SECRET']
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth, wait_on_rate_limit=True)
#print to personal account foodie pics
class MyStreamListener(tweepy.StreamListener):
def on_status(self, status):
api.retweet(status.id_str)
def on_error(self, status_code):
if status_code == 420:
#returning False in on_data disconnects the stream
return False
myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
myStream.filter(track=['#foodie'])
There should also be a requirements.txt file that should look like this:
azure-functions
tweepy
Go ahead and hit that upload button. After successful upload keep an eye
on your account to see the food pics! Welcome to the serverless bot
world. 😎
------------------------------------------------------------------------
Resources
---------
- [Microsofts
Docs](https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-azure-function)
- [Tweepy Docs](http://docs.tweepy.org/en/v3.5.0/getting_started.html)
- [Configuration
Variables](https://docs.microsoft.com/en-us/azure/azure-functions/functions-how-to-use-azure-function-app-settings)