RDP into the jumpbox (you can get the IP using Azure Portal). The user and password are the ones that you defined as environment variables at the begining.
-
Install C++ Redistributable - Download and install the latest supported Visual C++ downloads for x64.
-
Install ODBC Driver 17 for SQL Server.
-
Install sqlcmd.
-
Open Power Shell as administrator in order to install azure client and enable script execution.
Invoke-WebRequest -Uri https://aka.ms/installazurecliwindows -OutFile .\AzureCLI.msi; Start-Process msiexec.exe -Wait -ArgumentList '/I AzureCLI.msi /quiet'; rm .\AzureCLI.msi Set-ExecutionPolicy RemoteSigned
-
Open a new PowerShell console and follow the next steps.
-
Create the "Counts" table.
$RGNAME = '[YOUR RESOURCE GROUP NAME]' $USER = '[YOUR AZURE ACCOUNT]' az login $SQL_SERVER = $(az deployment group show -g $RGNAME -n services --query properties.outputs.sqlServerName.value -o tsv) $SQL_DATABASE = $(az deployment group show -g $RGNAME -n services --query properties.outputs.sqlDatabaseName.value -o tsv) $SQL_TABLE_OBJECT = "IF OBJECT_ID('dbo.Counts', 'U') IS NULL CREATE TABLE Counts(ID INT NOT NULL IDENTITY PRIMARY KEY, Candidate VARCHAR(32) NOT NULL, Count INT);" sqlcmd -S tcp:$SQL_SERVER.database.windows.net,1433 -d $SQL_DATABASE -N -l 30 -U $USER -G -Q $SQL_TABLE_OBJECT
-
If you chose standard deployment follow these steps to create the SQL command
$VOTING_COUNTER_FUNCTION_NAME = $(az deployment group show -g $RGNAME -n sites --query properties.outputs.votingFunctionName.value -o tsv) $VOTING_API_NAME = $(az deployment group show -g $RGNAME -n sites --query properties.outputs.votingApiName.value -o tsv) $SQL = "CREATE USER [$VOTING_COUNTER_FUNCTION_NAME] FROM EXTERNAL PROVIDER;ALTER ROLE db_datareader ADD MEMBER [$VOTING_COUNTER_FUNCTION_NAME];ALTER ROLE db_datawriter ADD MEMBER [$VOTING_COUNTER_FUNCTION_NAME];CREATE USER [$VOTING_API_NAME] FROM EXTERNAL PROVIDER;ALTER ROLE db_datareader ADD MEMBER [$VOTING_API_NAME];ALTER ROLE db_datawriter ADD MEMBER [$VOTING_API_NAME];"
-
If you chose high availability deployment follow these steps to create the SQL command
$VOTING_COUNTER_FUNCTION1_NAME = $(az deployment group show -g $RGNAME -n sites1 --query properties.outputs.votingFunctionName.value -o tsv) $VOTING_COUNTER_FUNCTION2_NAME = $(az deployment group show -g $RGNAME -n sites2 --query properties.outputs.votingFunctionName.value -o tsv) $VOTING_API1_NAME = $(az deployment group show -g $RGNAME -n sites1 --query properties.outputs.votingApiName.value -o tsv) $VOTING_API2_NAME = $(az deployment group show -g $RGNAME -n sites2 --query properties.outputs.votingApiName.value -o tsv) $SQL = "CREATE USER [$VOTING_COUNTER_FUNCTION1_NAME] FROM EXTERNAL PROVIDER;ALTER ROLE db_datareader ADD MEMBER [$VOTING_COUNTER_FUNCTION1_NAME];ALTER ROLE db_datawriter ADD MEMBER [$VOTING_COUNTER_FUNCTION1_NAME];CREATE USER [$VOTING_API1_NAME] FROM EXTERNAL PROVIDER;ALTER ROLE db_datareader ADD MEMBER [$VOTING_API1_NAME];ALTER ROLE db_datawriter ADD MEMBER [$VOTING_API1_NAME];CREATE USER [$VOTING_COUNTER_FUNCTION2_NAME] FROM EXTERNAL PROVIDER;ALTER ROLE db_datareader ADD MEMBER [$VOTING_COUNTER_FUNCTION2_NAME];ALTER ROLE db_datawriter ADD MEMBER [$VOTING_COUNTER_FUNCTION2_NAME];CREATE USER [$VOTING_API2_NAME] FROM EXTERNAL PROVIDER;ALTER ROLE db_datareader ADD MEMBER [$VOTING_API2_NAME];ALTER ROLE db_datawriter ADD MEMBER [$VOTING_API2_NAME];"
-
Create SQL Server MSI integration
sqlcmd -S tcp:$SQL_SERVER.database.windows.net,1433 -d $SQL_DATABASE -N -l 30 -U $USER -G -Q $SQL