Quantcast
Channel: Active questions tagged svelte - Stack Overflow
Viewing all articles
Browse latest Browse all 1541

How to change the dataApiPort option during Azure Static Web Application deployment using SWA CLI?

$
0
0

I am trying to deploy a Svelte web application to an Azure Static Web Application (SWA) using the swa CLI tool. I have created a serverless "Cosmos DB NoSQL" database and a "Static Web App" resource on Azure. The simple web application deployment was successful and I managed to link the Cosmos DB with the Static Web App using the SWA CLI tool on my Linux (Debian 12) machine.

Deployment steps

However, I could not deploy the application on my Windows (workplace) machine. I had been following the Database connection Azure Cosmos DB tutorials. First, I exported the connection string from the database:

export DATABASE_CONNECTION_STRING='<YOUR_CONNECTION_STRING>'

Next, I installed the swa CLI tool globally:

npm install -g @azure/static-web-apps-cli

I am using the /build folder for deployment hence I built the app with the npm run build command. Here is the content of the svelte.config.js config file:

import adapter from '@sveltejs/adapter-static';export default {    kit: {        adapter: adapter({            pages: 'build',            assets: 'build',            fallback: 'index.html',            precompress: false,            strict: true        }),        // This option is necessary for the GitHub page deployment        paths: {            base: process.argv.includes('dev') ? '' : process.env.BASE_PATH        }    }};

But, when I start the SWA emulator with the following command:

swa start ./build --data-api-location swa-db-connections

On Windows (I did not get any error on Linux), I got the following error message:

[dataApi] Information: Microsoft.DataApiBuilder 0.9.7+e560142426d1c080b9fd7b7fabff51a276f6bf61[dataApi] Information: User provided config file: staticwebapp.database.config.json[dataApi] Loading config file from staticwebapp.database.config.json.[dataApi] Information: Loaded config file: staticwebapp.database.config.json       [dataApi] Information: Setting default minimum LogLevel: Error for Production mode.[dataApi] Starting the runtime engine...[dataApi] Redirecting to https is disabled.[dataApi] Loading config file from staticwebapp.database.config.json.[dataApi] info: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[63][dataApi]       User profile is available. Using 'C:\Users\z0190983\AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.[swa] [swa] Using workflow file:[swa]   C:\Users\z0190983\ws\personal\pomodoro-svelte\.github\workflows\azure-static-web-apps.yml[dataApi] Unable to launch the runtime due to: System.IO.IOException: Failed to bind to address http://127.0.0.1:5000: address already in use.[dataApi]  ---> Microsoft.AspNetCore.Connections.AddressInUseException: Only one usage of each socket address (protocol/network address/port) is normally permitted.[dataApi]  ---> System.Net.Sockets.SocketException (10048): Only one usage of each socket address (protocol/network address/port) is normally permitted.[dataApi]    at System.Net.Sockets.Socket.UpdateStatusAfterSocketErrorAndThrowException(SocketError error, String callerName)[dataApi]    at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)[dataApi]    at System.Net.Sockets.Socket.Bind(EndPoint localEP)

I checked the with netstat -na | findstr :5000, and indeed it is listening. If I execute the swa --print-config command, I will see that the dataApiPort is the 5000 port:

Options: - port: 4280 - host: localhost - apiPort: 7071 - dataApiPort: 5000 - appLocation: . - apiLocation: <undefined> - dataApiLocation: swa-db-connections - outputLocation: build...

Now, the question is how can I change the dataApiPort options to another port? I tried using the swa start --port 5000 with no vain. I would really appreciate any help and guidance!

Note: You can also clone the GitHub repository to quickly reproduce the problem.

Configuration files (Optional)

The configuration files are the exact copy from the tutorial but here are they, just in case. Under the swa-db-connections folder, this is the content of the staticwebapp.database.config.json file:

{"$schema": "https://github.com/Azure/data-api-builder/releases/download/v0.9.7/dab.draft.schema.json","data-source": {"database-type": "cosmosdb_nosql","connection-string": "@env('DATABASE_CONNECTION_STRING')","options": {"database": "MyTestPersonDatabase","schema": "staticwebapp.database.schema.gql"        }    },"runtime": {"graphql": {"enabled": true,"path": "/graphql","allow-introspection": true        },"host": {"cors": {"origins": ["http://localhost:4280"],"allow-credentials": false            },"authentication": {"provider": "StaticWebApps"            },"mode": "production"        }    },"entities": {"Person": {"source": "MyTestPersonContainer","permissions": [                {"actions": ["*"],"role": "anonymous"                }            ]        }    }}

The content of the staticwebapp.database.schema.gql file:

type Person @model {    id: ID    Name: String}

Viewing all articles
Browse latest Browse all 1541

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>