You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit daedf26
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: README.md
+24-12Lines changed: 24 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -36,18 +36,20 @@ Have these ready:
36
36
37
37
-**Provider account:** complete the provider's account and sender registration for your chosen
38
38
SMS or voice service. Check [guided provider support](docs/ONBOARDING.md#provider-credential-names).
39
-
-**Workstation:** Windows, PowerShell 7+, and Azure CLI 2.60.0+ for Flex Consumption (FC1),
40
-
or 2.48.1+ for Premium (EP1). Allow access to GitHub, Azure, Microsoft Graph, Key Vault, and
41
-
the deployment endpoints. C# also needs the .NET 8 SDK and NuGet access.
39
+
-**Shell:** Azure Cloud Shell in PowerShell mode, or PowerShell 7+ with an Azure CLI user login.
40
+
Azure CLI 2.60.0+ is required for Flex Consumption (FC1), or 2.48.1+ for Premium (EP1).
41
+
Allow access to GitHub, Azure, Microsoft Graph, Key Vault, and the deployment endpoints.
42
+
C# also needs the .NET 8 SDK and NuGet access.
42
43
-**Administrators:** an Azure operator with subscription deployment, resource-provider registration,
43
44
and role-assignment permissions; an Entra Privileged Role Administrator for setup; and an
44
45
Authentication Policy Administrator for later activation. These are separate permissions.
45
46
-**Azure region and budget:** check availability and subscription quota for your chosen Linux
46
47
plan. Azure resources and provider services can incur charges.
47
48
48
49
Review the [full prerequisites](setup/docs/README.md#prerequisites-for-step-2), including the
49
-
required Entra allowed-tenants preview, before running setup. The script can install missing
50
-
Graph modules and Bicep after confirmation; Azure CLI must already be installed.
50
+
required Entra allowed-tenants preview, before running setup. Microsoft Graph operations reuse
51
+
the Azure CLI login; no Graph PowerShell SDK or separate Graph sign-in is required. The script
52
+
can install Bicep after confirmation; Azure CLI must already be installed.
51
53
52
54
Choose an **onboarding owner** in your organization to coordinate the administrators, provider,
53
55
and Microsoft support. This is a sample, not production certification: it does not provide
@@ -103,19 +105,25 @@ Review the downloaded script, then run it:
103
105
```
104
106
105
107
On a shared or multi-account workstation, use `.\Setup-Epp.ps1 -ForceAuthentication` to request
106
-
explicit Azure and Microsoft Graph sign-in.
108
+
an explicit Azure CLI device-code sign-in. Microsoft Graph reuses that CLI session.
109
+
110
+
Setup first lists cached Azure CLI user subscriptions. Select the customer tenant and subscription,
111
+
then select or enter the dedicated application client ID and choose an Azure region. Refresh or
112
+
sign in when the expected account is missing.
107
113
108
-
Follow the prompts for your tenant, subscription, application client ID, and Azure region.
109
114
Choose the provider route and provider, then **one** platform: Node.js (JavaScript), .NET (C#), or Python.
115
+
When `-Provider` is omitted, setup reads the application's allowed-tenant configuration: no
116
+
supported provider means enter a provider name, one means confirm it, and several means choose
117
+
one by name. Provider choices are never numbered, and existing allowed provider tenants are preserved.
110
118
Setup configures both SMS and voice provider URLs without asking you to select a channel.
111
119
It downloads and verifies the package, builds it if needed, and deploys it for you.
112
120
You do not need a separate ZIP upload or local settings file.
113
121
114
122

115
123
116
-
*Use the IDs collected in Step 2, then enter your chosen Azure region. This screenshot is from
117
-
an earlier script version; current setup no longer has the channel prompt. It is an input screen,
118
-
not a deployment result.*
124
+
*Use the dedicated application created in Step 2 and your intended Azure region. This screenshot
125
+
is from an earlier script version; current setup uses selection lists for the tenant, subscription,
126
+
application, and region, and no longer has the channel prompt. It is an input screen, not a deployment result.*
119
127
120
128
Choose **FC1** for on-demand hosting that can scale to zero, or **EP1** for paid warm capacity.
121
129
FC1 can cold-start, and its free usage grant does not make the whole deployment free.
@@ -130,9 +138,9 @@ For the resource prefix, use 2-8 lowercase letters or digits, starting with a le
130
138
The Global/EU choice is not the Azure region. The hosting-plan warning applies even when a
131
139
plan has a free usage grant.*
132
140
133
-
Next, setup checks prerequisites, signs in to Azure and Microsoft Graph when needed, verifies
141
+
Next, setup checks prerequisites, revalidates the Azure CLI and Microsoft Graph context, verifies
134
142
the selected package, and prepares the deployment plan. For C#, this includes an automatic local build.
135
-
Complete sign-in and MFA yourself. If a permission or prerequisite check fails, resolve it
143
+
Complete any required CLI sign-in, MFA, or administrator consent yourself. If a permission or prerequisite check fails, resolve it
136
144
before continuing.
137
145
138
146
Setup also checks the application's existing **encryption certificates** before deployment.
@@ -159,6 +167,10 @@ After you approve, leave the script running while it configures the application,
159
167
Azure resources, and publishes the code. Wait for **Deployment completed** and the saved summary
160
168
before moving to Step 4. The input screenshots do not show a completed deployment.
161
169
170
+
Normal console output ends with **Next steps** after resource generation. Use
171
+
`.\Setup-Epp.ps1 -PassThru` when you also need the structured deployment result in a variable
172
+
or pipeline; the summary JSON is always saved.
173
+
162
174
Setup creates the Function App, storage, Key Vault, identities, and monitoring resources.
163
175
**Do not create these resources manually first.**
164
176
Keep the public certificate and timestamped summary in `epp-output` beside the script.
0 commit comments