services | platforms | author |
---|---|---|
cognitive-services |
ruby |
veronicagg |
Manage Azure Cognitive Services with Ruby
This sample demonstrates how to manage your Azure cognitive services account using a ruby client.
On this page
-
If you don't already have it, install Ruby and the Ruby DevKit.
-
If you don't have bundler, install it.
gem install bundler
-
Clone the repository.
git clone https://github.com/Azure-Samples/cognitive-services-ruby-create-account.git
-
Install the dependencies using bundle.
cd cognitive-services-ruby-create-account bundle install
-
Create an Azure service principal either through Azure CLI, PowerShell or the portal.
-
Set the following environment variables using the information from the service principle that you created.
export AZURE_TENANT_ID={your tenant id} export AZURE_CLIENT_ID={your client id} export AZURE_CLIENT_SECRET={your client secret} export AZURE_SUBSCRIPTION_ID={your subscription id}
[AZURE.NOTE] On Windows, use
set
instead ofexport
. -
Run the sample.
bundle exec ruby example.rb
What does example.rb do?
This sample starts by setting up a ResourceManagementClient object using your subscription and credentials.
subscription_id = ENV['AZURE_SUBSCRIPTION_ID'] || '11111111-1111-1111-1111-111111111111' # your Azure Subscription Id
provider = MsRestAzure::ApplicationTokenProvider.new(
ENV['AZURE_TENANT_ID'],
ENV['AZURE_CLIENT_ID'],
ENV['AZURE_CLIENT_SECRET'])
credentials = MsRest::TokenCredentials.new(provider)
cs_client = Azure::ARM::CognitiveServices::CognitiveServicesManagementClient.new(credentials)
cs_client.long_running_operation_retry_timeout = ENV.fetch('RETRY_TIMEOUT', 30).to_i
resource_client = Azure::ARM::Resources::ResourceManagementClient.new(credentials)
resource_client.subscription_id = cs_client.subscription_id = subscription_id
resource_client.providers.register("Microsoft.CognitiveServices")
resource_client.long_running_operation_retry_timeout = ENV.fetch('RETRY_TIMEOUT', 30).to_i
The sample then sets up a resource group.
resource_group_params = Azure::ARM::Resources::Models::ResourceGroup.new.tap do |rg|
rg.location = WEST_US
end
resource_group_params.class.class
resource_client.resource_groups.create_or_update(GROUP_NAME, resource_group_params)
Create a cognitive services account
cs_acc_params = Azure::ARM::CognitiveServices::Models::CognitiveServicesAccountCreateParameters.new
sku = Azure::ARM::CognitiveServices::Models::Sku.new
sku.name = Azure::ARM::CognitiveServices::Models::SkuName::F0
cs_acc_params.sku = sku
cs_acc_params.kind = Azure::ARM::CognitiveServices::Models::Kind::TextAnalytics
cs_acc_params.location = 'westus'
cs_acc_params.properties = {:prop1 => 'prop1'}
cs_account = cs_client.cognitive_services_accounts.create(GROUP_NAME, ACCOUNT_NAME, cs_acc_params)
Delete a cognitive services account
cs_client.cognitive_services_accounts.delete(GROUP_NAME, ACCOUNT_NAME)
More information
Please refer to Azure SDK for Ruby for more information.