R package for interacting with Azure Resource Manager
Перейти к файлу
hong-revo 66466780a4 move rg check to subscription class 2018-11-08 12:24:03 +11:00
R move rg check to subscription class 2018-11-08 12:24:03 +11:00
inst better md location 2018-10-25 01:47:40 +08:00
man update docs 2018-10-29 00:30:40 +11:00
tests default location for create_resource taken from rg loc, fill in readme 2018-10-30 13:40:06 +11:00
vignettes default location for create_resource taken from rg loc, fill in readme 2018-10-30 13:40:06 +11:00
.Rbuildignore update rbuildignore 2018-11-05 15:17:29 +11:00
.gitattributes R files 2018-04-30 21:09:03 +10:00
.gitignore require confirmation before delete 2018-05-08 12:40:22 +10:00
.travis.yml Revert "still dratting" 2018-11-07 13:21:55 +11:00
AzureRMR.Rproj change repo name 2018-05-09 12:54:40 +10:00
AzureRMR.rxproj change repo name 2018-05-09 12:54:40 +10:00
AzureRMR.sln add sln file 2018-05-09 12:55:07 +10:00
CONTRIBUTING.md add citation, contrib docs 2018-10-19 07:23:53 +11:00
DESCRIPTION revert to rmd vignettes for now 2018-10-29 18:08:06 +11:00
LICENSE R files 2018-04-30 21:09:03 +10:00
NAMESPACE checking for CRAN 2018-10-19 08:19:15 +11:00
NEWS.md use semver 2018-10-24 00:17:30 +08:00
README.md small readme tweaks 2018-11-05 12:30:09 +11:00
drat.sh Revert "test drat again" 2018-11-07 12:44:41 +11:00

README.md

AzureRMR

AzureRMR is a package for interacting with Azure Resource Manager: authenticate, list subscriptions, manage resource groups, deploy and delete templates and resources. It calls the Resource Manager REST API directly, so you don't need to have PowerShell or Python installed.

AzureRMR is not yet available on CRAN. You can install it from GitHub, via devtools::install_github("cloudyr/AzureRMR").

Before you begin

To use AzureRMR, you must create and register a service principal with Azure Active Directory. This is a one-time task, and the easiest method is to use the Azure cloud shell.

  • If you haven't used the shell before, there will be a dialog box to choose whether to use bash or PowerShell. Choose bash.
  • In the shell, type az ad sp create-for-rbac --name {app-name} --subscription "{your-subscription-name}" --years {N}, substituting the desired name of your service principal (try to make it memorable to you, and unlikely to clash with other names), your subscription name, and the number of years you want the password to be valid.
  • Wait until the app creation is complete. You should see a screen like this.

  • Record your tenant ID, app ID, and password.

If you want to allow access at something other than subscription level, you can use the --scopes argument in place of --subscription. For example, to restrict AzureRMR to only the "AnalyticsRG" resource group: az ad sp create-for-rbac --scopes /subscriptions/{your-subscription-ID}/resourceGroups/AnalyticsRG.

Sample workflow

library(AzureRMR)

az <- az_rm$new(tenant="{tenant_id}", app="{app_id}", password="{password}")

# get a subscription and resource group
sub <- az$get_subscription("{subscription_id}")
rg <- sub$get_resource_group("rgname")

# get a resource (storage account)
stor <- rg$get_resource(type="Microsoft.Storage/storageAccounts", name="mystorage")

# method chaining works too
stor <- az$
    get_subscription("{subscription_id}")$
    get_resource_group("rgname")$
    get_resource(type="Microsoft.Storage/storageAccounts", name="myStorage")


# create a new resource group and resource
rg2 <- sub$create_resource_group("newrgname", location="westus")

stor2 <- rg2$create_resource(type="Microsoft.Storage/storageAccounts", name="myStorage",
    kind="Storage", sku=list(name="Standard_LRS", tier="Standard"))

# delete them
stor2$delete(confirm=FALSE)
rg2$delete(confirm=FALSE)

Extending

AzureRMR is meant to be a generic mechanism for working with Resource Manager. You can extend it to provide support for service-specific features; examples of packages that do this include AzureVM for virtual machines, and AzureStor for storage accounts. For more information, see the "Extending AzureRMR" vignette.


cloudyr project logo