Stay updated with the latest insights and updates from our team.
Standard Resume's will no longer cut it. Employers want to know what it is that you actually do for all that money. Job title's and education do not tell enough of the story for a great Full Stack Software Engineer. Follow me on my journey as I share highlights of day to day activities as a Technologist
Welcome to the new Blog site!
I'm the effort of creating the blog site I have encountered my first subject to post about: How To deploy and Azure Function App written in python.
To lay some ground work. This site is an Azure Function App running on a Linux backend. The functions are written in python and all they do is serve up static HTML5/JavaScript. Today I added the ability to share blog posts and in doing so, added a dependency on azure-storage-blob.
The documentation was pretty straight forward. Create a new container in my blob storage. Copy the connection string and add it as a variable in my deployment. Create the connection in code and read and write from it. Very straight forward, no problems here.
Now if you've found your way to my blog because you've spent hours trying to determine why your function app wont run and is not finding the module for which you just added in your latest pull request? Well, you're in luck. Here is the magic your deployment is missing:
pip install -r requirements.txt --target=./
Now you might be saying, why Chris? Why would you install all the dependencies in the same folder, why not use the default install location? And my answer is: "I did it this way becasue I Was excluding all the additional dependencies in .venv and this worked after testing and I am unconcerned with the clutter in the deployment because there is now way to easily view the contents of my deployment. For some reason I have no access meaningful to kudu (no terminal), though I've read a lot about it in documentation. I could have went the FTP route, but I didn't make it that far.
For Python Function App Zip Deployment, regardless of options added to you GitHub actions build, or az CLI commands, it will not download and install the pip dependencies in requiremnts.txt, you have to include them yourself in the zip!
Here is a powershell script to help you deploy your app:
az login
# Path to the folder to zip
$sourceFolder = "C:\git\chrishaddox\ChrisHaddoxCom"
# Path for the output ZIP file
$outputZip = "C:\git\chrishaddox\chrishaddoxcom.zip"
cd ChrisHaddoxCom
pip install -r requirements.txt --target=./
# Create the ZIP file
Compress-Archive -Path $sourceFolder\* -DestinationPath $outputZip -Force
Write-Output "Folder zipped successfully to $outputZip"
# Log in to Azure
Write-Output "Logging in to Azure. Please complete authentication in the browser..."
az functionapp deployment source config-zip -g
After 9 long months of back and forth with the Facebook App Review, we have finally obtained Facebook Approval for our app, Riziki! I have developed an android app with a team of professionals in a startup called Riziki. This initial version of the app only took maybe 6 weeks to write but we ran into issue after issue with the Facebook approval team, extending this initial release process to 9 months! Phew, it was rough. Initially, I created a very basic, not good looking app with the bare minimum functionality. It worked fine, just didn't look good. I had read through the Meta documentation for creating an App and even though it stated to complete development of the app, this was complete for the phase we were in - getting customer feedback and reviewing how the app is used. On our initial App Review from Facebook, I got the feedback "Build a quility App" so I assumed this was because my App looked bad, so I made it look like our fancy mockup's. Another App Review - received the same exact feedback :( I quickly learned that the app review feedback was not very detailed. I ended up having to reach out to Meta Developer support to have them reach out to the App Review team to get clear feedback on why the App Review was being rejected. In the end, I found our initial App Review was being rejected due to the App Review team being unable to install the APK I had provided for testing. Though working with the Developer Support Team, it seems they were able to walk a reviewer through how to install the APK and we started getting better feedback, but the journey was far from over. This issue came back up several times, so I made the decision to move to Google Play Store releases, which worked more smoothly for the Review team. Another major hurdle we faced was providing the App Review team with test credentials. Meta has removed the capability to create test accounts/users for us to provide to the App Review team. This lead to our entire team working to attempt to create a real "Test" account - Yes, this is what Meta asked us to do despite their terms saying no to do this! Facebook has all kinds of security around creating second accounts or fake accounts so we had our work cut out for us. Finally our team had created a new email, used a new phone and with a little luck we had a test account that we linked to our test app so that it was allowed to use the test permissions, to allow the App Review team access to our application. At this point we had the App Review team able to install our app and login with a Facebook account that had the data needed to use the app. Now we went back and forth in many app reviews. Receiving unclear feedback, reaching out to dev support, clarifying the feedback and making updates. The major updates at this point were explaining in pain-staking detail how each permission was used, that it was being used in alignment with Facebooks terms, what value the permission gave the user of the app and what features of our app used each permission. This ended up taking time because I didn't heed just how detailed they wanted these descriptions. They're basically short stories. I then had to work on my video editing skills because they also needed a screencast showing the permissions being used in the App. However they didn't want just a screencast, they wanted it to have text and arrows and a real break-down on every detail in the video. With this we got our first of four permission approvals, but even with all the additional detail, screenshots of code, explaining which API's are being used and highlighting where in the app these permissions were used, I was unable to get approval due to the app review team "not seeing where/how the permissions were used". Over and over again, denied. Even when adding redundant explanations and getting down to minute detail, we couldn't get the App Review team to approve the features. In the end I had to add a whole new feature to our app that would display additional "debug" information and update our video and permission usage descriptions so that the review team was satisfied with what they could see in the UI. That brings us to today, where as of 12:30AM we have finally received all 4 of our required permissions from Facebook. We can now allow any Facebook user to download and use our App! Woot Woot! Android App written in Kotlin using Composable UI and HILT view models.