11#! /bin/bash
22
33# Variables
4- PREFIX=' user ' # system or user
4+ PREFIX=' funchttp ' # system or user
55SUFFIX=' test'
66LOCATION=' westeurope'
77CURRENT_DIR=" $( cd " $( dirname " $0 " ) " && pwd) "
88ZIPFILE=" function_app.zip"
9- ENVIRONMENT=$( az account show --query environmentName --output tsv)
109
1110# Change the current directory to the script's directory
1211cd " $CURRENT_DIR " || exit
1312
13+ # Determine environment
14+ if command -v az > /dev/null 2>&1 ; then
15+ CLOUD_NAME=$( az cloud show --query name --output tsv 2>&1 || echo " " )
16+
17+ if [[ " $CLOUD_NAME " == " LocalStack" ]]; then
18+ ENVIRONMENT=" LocalStack"
19+ elif [[ " $CLOUD_NAME " == " AzureCloud" ]]; then
20+ ENVIRONMENT=" AzureCloud"
21+ else
22+ ENVIRONMENT=" AzureCloud"
23+ fi
24+ else
25+ ENVIRONMENT=" AzureCloud"
26+ fi
27+
1428# Run terraform init and apply
1529if [[ $ENVIRONMENT == " LocalStack" ]]; then
16- echo " Using tflocal and azlocal for LocalStack emulator environment and ."
30+ echo " Using tflocal and azlocal for LocalStack emulator environment."
1731 TERRAFORM=" tflocal"
32+
33+ # Log Azure auth environment variables before unsetting
34+ echo " [DEBUG] Azure auth env vars before unsetting:"
35+ echo " [DEBUG] ARM_CLIENT_ID=${ARM_CLIENT_ID:- <not set>} "
36+ echo " [DEBUG] ARM_CLIENT_SECRET=${ARM_CLIENT_SECRET: +<set but hidden>}${ARM_CLIENT_SECRET:- <not set>} "
37+ echo " [DEBUG] ARM_TENANT_ID=${ARM_TENANT_ID:- <not set>} "
38+ echo " [DEBUG] ARM_SUBSCRIPTION_ID=${ARM_SUBSCRIPTION_ID:- <not set>} "
39+ echo " [DEBUG] AZURE_CLIENT_ID=${AZURE_CLIENT_ID:- <not set>} "
40+ echo " [DEBUG] AZURE_TENANT_ID=${AZURE_TENANT_ID:- <not set>} "
41+
42+ echo " [DEBUG] Azure auth env vars after unsetting: all cleared"
1843 AZ=" azlocal"
1944else
2045 echo " Using standard terraform and az for AzureCloud environment."
2146 TERRAFORM=" terraform"
2247 AZ=" az"
2348fi
2449
50+ echo " [DEBUG] Cloud name: '$CLOUD_NAME ', Environment: '$ENVIRONMENT ', Tools: TERRAFORM=$TERRAFORM , AZ=$AZ "
51+ echo " [DEBUG] TERRAFORM command location: $( which $TERRAFORM 2> /dev/null || echo ' not found' ) "
52+
53+ # Enable Terraform debug logging
54+ export TF_LOG=DEBUG
55+ export TF_LOG_PATH=" $CURRENT_DIR /terraform-debug.log"
56+ echo " [DEBUG] Checking what tflocal does..." echo " [DEBUG] tflocal version: $( $TERRAFORM version 2>&1 | head -1) " echo " [DEBUG] Contents of current directory before init:" ls -la . 2>&1 | head -20
57+ echo " [DEBUG] Terraform debug logging enabled: TF_LOG=DEBUG, TF_LOG_PATH=$TF_LOG_PATH "
58+
2559echo " Initializing Terraform..."
2660$TERRAFORM init -upgrade
2761
@@ -34,6 +68,11 @@ $TERRAFORM plan -out=tfplan \
3468
3569if [[ $? != 0 ]]; then
3670 echo " Terraform plan failed. Exiting."
71+ echo " ============================================================"
72+ echo " Last 100 lines of Terraform debug log:"
73+ echo " ============================================================"
74+ tail -100 " $TF_LOG_PATH " 2> /dev/null || echo " Debug log not found"
75+ echo " ============================================================"
3776 exit 1
3877fi
3978
@@ -47,8 +86,8 @@ if [[ $? != 0 ]]; then
4786fi
4887
4988# Get the output values
50- RESOURCE_GROUP_NAME=$( terraform output -raw resource_group_name)
51- FUNCTION_APP_NAME=$( terraform output -raw function_app_name)
89+ RESOURCE_GROUP_NAME=$( $TERRAFORM output -raw resource_group_name)
90+ FUNCTION_APP_NAME=$( $TERRAFORM output -raw function_app_name)
5291
5392# Print the variables
5493echo " Resource Group: $RESOURCE_GROUP_NAME "
@@ -71,8 +110,12 @@ cd .. || exit
71110
72111# Deploy the function app using the zip file
73112echo " Deploying function app [$FUNCTION_APP_NAME ]..."
74- $AZ functionapp deploy \
113+ if $AZ functionapp deploy \
75114 --resource-group " $RESOURCE_GROUP_NAME " \
76115 --name " $FUNCTION_APP_NAME " \
77116 --src-path $ZIPFILE \
78- --type zip 1> /dev/null
117+ --type zip 1> /dev/null; then
118+ echo " Function app [$FUNCTION_APP_NAME ] deployed successfully."
119+ else
120+ echo " Warning: Failed to deploy function app [$FUNCTION_APP_NAME ]."
121+ fi
0 commit comments