Comments (4)
WEBSITE_PRIVATE_PORTS at the runtime it is not present in Kudo console , or env vars. What did you do @olmu to make it work on Linux App Service ?
I believe this command has added them:
az webapp config set -g {ressource_group_name} -n {app_service_name} --generic-configurations '{"vnetPrivatePortsCount": 2}
But the trick was that is is not showing in Kudo console Env vars, but during the runtime it is there and we can get that parameter from WEBSITE_PRIVATE_PORTS
from orleans.
Not much related to the issue, but could you explain how you have managed to make it working in Azure? I'm currently struggling with this for 3 days so far and still no result. I have 2 Web Apps, one is running the Silo, another one is trying to connect, they are both in the same service plan (Linux) so their WEBSITE_PRIVATE_IP is same. What I did so far (according to this #7391):
- Created Vnet, subnet, network security group, added both apps in
- Exposed WEBSITE_PRIVATE_PORTS, set vnetPrivatePortsCount to 2
- Used UseAzureStorageClustering
- Used WEBSITE_PRIVATE_PORTS and WEBSITE_PRIVATE_IP to configure the endpoints (then realized that PRIVATE_IP is same for Silo and Client as they're running on the same Linux App plan, after that tried without endpoint and with hostname - IP is changing, but no result)
As the result when I run the client App I'm getting same error:
Connection attempt to endpoint S10.0.0.254:30000:0 failed
Orleans.Runtime.Messaging.ConnectionFailedException: Unable to connect to any of the 1 available gateways.
2023-12-20T23:44:36.287813275Z ---> Orleans.Runtime.Messaging.ConnectionFailedException: Unable to connect to endpoint S10.0.0.254:30000:0.
What am I missing?
UPD: The issue was that I was using Linux App plan and on Linux it doesn't create WEBSITE_PRIVATE_PORTS settings when I update the vnetPrivatePortsCount property
UPD2: Works on Linux App service plan as well, even when both apps are in the same App plan, just don't need to set WEBSITE_PRIVATE_PORTS env var manually, even despite it is not shown in Kudo console, at the runtime it is present in env vars
from orleans.
WEBSITE_PRIVATE_PORTS at the runtime it is not present in Kudo console , or env vars.
What did you do @olmu to make it work on Linux App Service ?
from orleans.
So $WEBSITE_PRIVATE_PORTS is a string containing a list of ports that Azure dynamically provides to Azure App Service to allow private inter-instances communications when you scale an App Service Plan containing this App Service?
So you just provide how many private ports you want ( setting vnetPrivatePortsCount) and Azure allocates random ports at App Service startup.
And the application in the App Service should pick them splitting the comma separated string and use the dynamic ports where binding ports is needed.
What an undocumented complex, dear Microsoft....
from orleans.
Related Issues (20)
- Issues running Silo in Docker Compose: Unexpected direct silo connection on proxy endpoint HOT 5
- ISiloBuilder.ConfigureApplicationParts not in version 8 ? HOT 7
- How do I correctly call the DeactivateOnIdle() method within the Grain? Getting error! HOT 3
- The best suggestion for grain state storage? HOT 5
- Cluster Manifest Broken by v7.2.5
- Could not find a copier for type System.Func` HOT 4
- Accept a redis key prefix for all redis providers
- Metric value for orleans-grains can sometimes be negative
- PartitionGrains and Rebalancing HOT 2
- Expetion thrown on Subcribtion to MemoryStream. HOT 5
- Log spam with "ActivationCollector found an activation in a non Valid state"
- Alias does not seem to work during serialization after moving code - still referring types using full name HOT 9
- Null reference when trying to get a grain from GrainFactory
- Multiple Silos on single Host (One Cluster) Not updating database status with UseAdoNetClustering (3.2.2 and 3.7.1) HOT 1
- [Aspire] Cannot start Orleans client project because UseOrleansClient() tries to configure storage providers HOT 3
- Collection Expression syntax not compatible with orleans serializer HOT 10
- Selective Grains & interfaces in service Silos of Heterogenous Clusters HOT 1
- IPersistentState<MyClass>.RecordExists is false until .ReadStateAsync() is called HOT 9
- CleanupDefunctSiloEntriesKey missing in Oracle Migrations HOT 2
- Add binding for IConfiguration to ResoureOptimizedPlacementOptions
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from orleans.