by Contributed | Jan 28, 2021 | Technology
This article is contributed. See the original author and article here.
The Azure Sphere 21.01 feature release includes the following components:
- Updated Azure Sphere OS
- Updated Azure Sphere SDK for Windows and for Linux
- Updated Azure Sphere extensions for Visual Studio and for Visual Studio Code
If your devices are connected to the internet, they will receive the updated OS from the cloud. You’ll be prompted to install the updated SDK on next use, or you can install it now. To install the latest SDK, see the installation Quickstart for Windows or Linux:
New and changed features in the 21.01 release
The 21.01 release includes additional features in the CLI v2 Beta, a new API to help applications monitor their memory usage, support for application crash data collection, and improved capabilities in Azure Sphere Explorer. In addition, we’ve added the ability to control current for GPIOs and additional ways to access ADC peripherals.
The following sections provide details about these changes.
Azure Sphere CLI v2
In the 21.01 release, the Azure Sphere CLI v2 continues to evolve, but is still considered a Beta product. We encourage you to use this new, more powerful CLI and to report any problems by using the v2 Beta CLI azsphere feedback command. In general, the V2 CLI is backwards compatible with the V1 CLI; however, it has a few differences that are worth noting, as described in the online documentation.
In each subsequent release of CLI v2, we aim to maintain backwards compatibility for both input (command names, parameter names, parameter values) and output in JSON and yaml. In cases where such compatibility is not possible, we will provide at least 6 months’ notice before making changes.
The 21.01 release of CLI v2 supports simplified object identification so that you can use either use the ID (GUID), IP address, or Local Connection ID to identify the device.
API features
Several of the Applibs libraries contain new functions at this release:
- New memory functions allow high-level applications to monitor their own memory usage. The functions return the total memory usage, user-mode memory usage, and peak user-mode memory usage.
- New GPIO libraries components, which include gpiopin_request, pin_config_param_type, and GPIO_SET_PIN_CONFIG_IOCTL, allow you to control the amount of current used to drive GPIO pins.
Support for crash data collection
Optional diagnostic data can be configured to collect a full Linux core dump when an application or system service crashes.
The Device Group – Patch function in the public API (PAPI) supports enabling crash dump collection for one or more of your device groups.
Access to ADC peripherals
ADC peripherals can now be accessed in the following ways:
- Simplified functions that are wrappers for base Linux functionality.
- Advanced functions that rely on Linux ioctls that communicate with the peripheral directly.
Code snippets are provided for both simplified and advanced functions that show how to:
- Get the channel specification
- Set the reference voltage
- Get the sample bit count
- Read the ADC
See the Implementation Overview for a side-by-side comparison of reading the ADC with the simplified, advanced, and Linux sysfs implementations.
New features in the 21.01 SDK
The IoT C SDK that is released with Azure Sphere was upgraded to the July LTS Refresh. This update contains an important security patch.
Updated Azure Sphere Explorer in Visual Studio and Visual Studio Code
Azure Sphere Explorer has been updated for this release. Visual Studio supports a read-only version and the Visual Studio Code version now supports write capabilities.
New and updated samples for 21.01
The 21.01 release includes the following new and updated sample hardware designs and applications:
- A new ADC sample that demonstrates how to use analog-to-digital conversion (ADC) functionality.
- Updates to the HTTPS_CurlEasy sample to showcase chunked downloads.
We have continued to make more of our existing Azure Sphere samples available for download through the Microsoft Samples Browser.
In addition, we now provide a collection of unmaintained samples and hardware designs in the Azure Sphere Gallery.
For more information on Azure Sphere OS feeds and setting up an evaluation device group, see Azure Sphere OS feeds and Set up devices for OS evaluation.
For self-help technical inquiries, please visit Microsoft Q&A or Stack Overflow. If you require technical support and have a support plan, please submit a support ticket in Microsoft Azure Support or work with your Microsoft Technical Account Manager. If you would like to purchase a support plan, please explore the Azure support plans.
by Contributed | Jan 28, 2021 | Technology
This article is contributed. See the original author and article here.
Editor’s note (1/28/21): Title was updated to make it shorter
There is a growing need for virtual meetings, consults, and appointments but also an increase in the amount of time people are dedicating to try to schedule those appointments. Back and forth phone calls, emails, text messages. Bookings can make it easier, so you can spend more time talking to customers rather than trying to schedule them, and it does it in a secure and integrated way with Microsoft 365.
Microsoft Bookings helps making scheduling and managing appointments easy and seamless. It does this through a web-based booking tool where people have the flexibility to see and book services when it’s convenient for them, it makes it easier to manage staff’s time by integrating with Outlook’s calendar and keeps everyone updated with timely and automatic email confirmations and reminders to reduce no-shows, all these also helps organizations reduce repetitive scheduling tasks.
Bookings is flexible, customizable, secure as it uses a mailbox in Exchange Online, and can be designed to fit scenarios and needs of different parts of an organization.
We have worked with various industries to enable different scenarios. Tele-Health by virtual consultations with doctors through Microsoft Teams, educational classrooms, financial consulting, organizations internal services like legal/IT/HR provided to their employees, candidate interviews, assisted shopping in retail, and government services. To read more on how customers are using Bookings for these scenarios, please click here.
These scenarios demand high scale, to help make sure Bookings works well for you and scale to your needs, we have prepared these best practices.
1. Planning for scale
Each Bookings calendar is currently designed to handle a maximum of 2,500 bookings across all services in that calendar per day, along with a creation limit of 10 booking requests per second, this will work for common scenarios.
If your requirements exceed this, you should plan to distribute the load using the steps below.
- Create a Bookings calendar with just one service.
- Clone this calendar to multiple calendars.
- You can opt-in to the Bookings preview to use a clone option and optout of the preview anytime you want to.
- Limit each calendar for specific audiences, like:
By buildings or operating group
By booking period (mornings only vs afternoons)
- Dividing the load across different Bookings calendars will help ensure none of them will reach the 2,500 limit.
2. Set how far in advance your customers can book an appointment
Finding the optimal value for the maximum advance appointment time your customers can book can help prioritize the daily limits for appointments that are closer to “today”. We have attached a simple Excel spreadsheet where you can enter the values to help you estimate the number of appointments and forward-looking time you can have in your Bookings calendar.
Follow the instructions below to use the attached spreadsheet.
- Calculating the maximum advance appointment time in which those 2,500 appointments could be achieved.
- Open the booking availability timeframe only for that period of time.
- Keep updating the timeframe once the slots are full or a day has passed, so people will always have the option to book up to the same timeframe in advance.
If you got confused (don’t worry, we did too), below is an example. This example is calculated at the calendar level, not at the service level.
- If the appointment duration is 10 minutes, and the maximum number of working hours are 8, then the possible number of appointments/day will be 8*60/10. This means up to 48 appointments per staff member, assuming you don’t need buffer time between appointments.
- If we consider 5 staff members per booking calendar, the max number of appointments you can have in a workday will be 240.
- Considering that opening more than 2,500 slots will throttle the system, then the ability to book a service shouldn’t be opened for more than 2500/240 = ~10.5 days
- Assuming a 5-day week, do not let your customers book appointments 2 weeks before the current date (I.e. today). This will ensure that your customers can always book an appointment
- You can choose to move the booking timeframe every day to always have a 2 week pre-booking time or do it when your bookings are filling up.
We are actively working to increase the scaling limits as you read this and we will post a new communication as soon as our systems are updated.
As always, please let us know if you have any feedback in our UserVoice channel.
Thank you!
Gabriel on behalf of the Bookings team
by Contributed | Jan 28, 2021 | Technology
This article is contributed. See the original author and article here.
We’re so excited to announce our first-ever Ask Microsoft Anything (AMA) for Office Scripts! The AMA will take place on Tuesday, February 16, 2021, from 9:00 a.m. to 10:00 a.m. PT in the Excel AMA space. Add the event to your calendar and view it in your time zone here.
During this AMA, you will have the opportunity to share your questions and feedback about Office Scripts and receive responses directly from our product team. Facing trouble with automating on Excel for web? Have an idea that would make our feature better? Let us know- we’re eager to hear and learn from you!

Looking forward to seeing you at the AMA. In the meantime, happy scripting!
The Office Scripts team
by Contributed | Jan 28, 2021 | Technology
This article is contributed. See the original author and article here.

Want to help defend the world against cyber attacks? We want you to influence our designs, plans, and guidance so we can have a global impact together. That’s why we need your participation in our security community.
As part of our community, you can speak directly to our engineering teams and get early access to changes by joining our webinars, participating in private previews, reviewing product roadmaps, attending in-person events, or providing feedback on our forums.
Webinars
To check out our upcoming webinars, or recordings of past webinars, visit https://aka.ms/SecurityWebinars.
Videos
We’re creating a series of short videos detailing a particular feature or scenario. Check them out at https://aka.ms/SecurityCommunityVideos.
Email List
To receive emails about upcoming webinars, events, and other announcements, visit https://aka.ms/SecurityEmailList.
Forums & Blogs
Got questions or feedback? Check out our product-specific forums where you can speak directly to our engineering teams, and our blogs where you can see the latest product developments. Go here and then click the join button.

Ninja Training
Want to go deep into the technical details? Our Ninja Training is for you.
Podcasts
Check out our Azure Security Podcast at https://aka.ms/AzSecPod and our Azure Security Center In The Field podcast at https://aka.ms/ASCInTheField.
Private Communities
We have several private communities that operate under NDA that may be right for you.
To apply to join our private preview program, where you can get early access to changes in exchange for your feedback, visit https://aka.ms/SecurityPrP.
To apply join our US government security community, visit https://aka.ms/SecGovCommunity.
GitHub
We welcome your contributions at our GitHub repositories. You can also find workbooks, scripts, playbooks, detections, sample data, and more.
<!– Old links
Forums
Azure Active Directory
Azure Advanced Threat Protection and ATA
Microsoft Information Protection
Azure Security Center
Azure Security Center for IoT
Azure Security and Identity
Azure Sentinel
Azure Network Security
Microsoft Cloud App Security
Microsoft Defender Advanced Threat Protection
Microsoft Graph Security API
Office 365 Identity & Authentication
Microsoft Security and Compliance
–>
Find Us on LinkedIn
We have a general discussion group on LinkedIn called the Microsoft Security Community, where I announce highlights from this site. Please join the group and feel free to connect with me.
by Contributed | Jan 28, 2021 | Technology
This article is contributed. See the original author and article here.
This article describes to check your quota and what should be your next when you reach Synapse workspace default limit.
If you exceeds workspace limits the error message you receive is – “ReachedPerSubscriptionWorkspaceLimit: Reached the maximum number of workspaces allowed for Subscription”
Facts:
Current default limit is 20 Synapse workspaces per subscription/region. i.e. There is a limit of 20 SQL servers per subscription by default.
Check Details about your subscription and workspaces:
Get the details about the workspace created in your subscription. This will help to optimize your resources
- Check for workspaces created and regions available to the subscription.
Following are list Rest APIs for Synapse
Azure Synapse Analytics REST API Reference | Microsoft Docs
- Available Regions
Ref document: Providers – Get (Azure Resource Management) | Microsoft Docs
GET https://management.azure.com/subscriptions/{SuBGUID}/providers/Microsoft.Synapse?api-version=2020-06-01
- Workspaces List
Workspaces – List (Azure Synapse) | Microsoft Docs
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Synapse/workspaces?api-version=2019-06-01-preview
Run following script in PowerShell 7
$SubscriptionId ={SubscriptionId}
# ------------------------------------------------------------------
# first login to Azure Account
Write-Host "Connecting to Azure Account..."
if((Get-AzContext) -eq $null)
{
Connect-AzAccount
}
# set subscription context
Write-Host "Selecting subscription..."
$context = Set-AzContext -Subscription $SubscriptionId
# get AAD token for REST calls
Write-Host "Getting Bearer token from AAD for REST calls..."
$apiToken = [Microsoft.Azure.Commands.Common.Authentication.AzureSession]::Instance.AuthenticationFactory.Authenticate($context.Account, $context.Environment, $context.Tenant.Id, $null, "Never", $null)
$headers = @{ 'authorization' = ('Bearer {0}' -f ($apiToken.AccessToken)) }
# Get Locations where Synapse is available
Write-Host "Getting Locations where Synapse is available..."
$synapseLocations = Get-AzLocation | Where-Object { $_.Providers -contains "Microsoft.Synapse" } | Sort-Object Location | Select-Object Location, DisplayName
# ------------------------------------------------------------------------------
# get subscription quota and regional available SLOs for Synapse SQL
Write-Host "Getting subscription quota settings for Synapse..."
$quotaResults = [System.Collections.ObjectModel.Collection[psobject]]@()
foreach($location in $synapseLocations)
{
# ------------------
# available slos
# https://docs.microsoft.com/en-us/rest/api/sql/capabilities/listbylocation
$capabilitiesUri = "https://management.azure.com/subscriptions/$SubscriptionId/providers/Microsoft.Sql/locations/$($location.Location)/capabilities?api-version=2020-08-01-preview"
$regionalCapabilities = ConvertFrom-Json (Invoke-WebRequest -Method Get -Uri $capabilitiesUri -Headers $headers).Content
# ------------------------------------
$quotaResults += [PSCustomObject]@{
Location = $location.Location;
DisplayName = $location.DisplayName;
Status = $regionalCapabilities.status;
}
}
$quotaResults | ft -AutoSize
Sample output.

- Check details about usage matrix for SQL Pools
Workspace Managed Sql Server Usages – List (Azure Synapse) | Microsoft Docs
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Synapse/workspaces/{workspaceName}/sqlUsages?api-version=2019-06-01-preview
Use following script in PowerShell 7
$SubscriptionId ={SubscriptionId}
# ------------------------------------------------------------------
# first login to Azure Account
Write-Host "Connecting to Azure Account..."
if((Get-AzContext) -eq $null)
{
Connect-AzAccount
}
# set subscription context
Write-Host "Selecting subscription..."
$context = Set-AzContext -Subscription $SubscriptionId
# get AAD token for REST calls
Write-Host "Getting Bearer token from AAD for REST calls..."
$apiToken = [Microsoft.Azure.Commands.Common.Authentication.AzureSession]::Instance.AuthenticationFactory.Authenticate($context.Account, $context.Environment, $context.Tenant.Id, $null, "Never", $null)
$headers = @{ 'authorization' = ('Bearer {0}' -f ($apiToken.AccessToken)) }
# ------------------------------------------------------------------------------
# SQL server DTU limits
Write-Host "Getting SQL DTU limits..."
# all servers in this subscription for SQL
# https://docs.microsoft.com/en-us/rest/api/sql/servers/list
# GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Sql/servers?api-version=2019-06-01-preview
$serversUri = "https://management.azure.com/subscriptions/$SubscriptionId/providers/Microsoft.Sql/servers?api-version=2019-06-01-preview"
$serverList = (ConvertFrom-Json (Invoke-WebRequest -Method Get -Uri $serversUri -Headers $headers).Content).value
$serverQuotas = @()
foreach($server in $serverList)
{
# usage detail of indiviual server
# https://docs.microsoft.com/en-us/rest/api/sql/servers/usages
# GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/servers/{serverName}/usages?api-version=2014-01-01
$serverQuotaUri = "https://management.azure.com$($server.id)/usages?api-version=2014-01-01"
$serverQuota = (ConvertFrom-Json (Invoke-WebRequest -Method Get -Uri $serverQuotaUri -Headers $headers).Content).value
$serverQuotas += [PSCustomObject]@{
Location = $server.location;
Id = $server.id;
Name = $server.name;
CurrentDTU = ($serverQuota | ? { $_.name -eq 'server_dtu_quota_current' }).currentValue;
DTULimit = ($serverQuota | ? { $_.name -eq 'server_dtu_quota_current' }).limit;
}
}
$serverQuotas | Sort-Object Location, Name | ft Location, Name, CurrentDTU, DTULimit -AutoSize
Sample result

Next Step: If you want to increase the quota, feel free to contact us through @ support .
Recent Comments