A simple package to access the instance metadata service in an Azure virtual machine.
The primary repo for this package is at https://github.com/Azure/AzureVMmetadata; please submit issues and PRs there. It is also mirrored at the Cloudyr org at https://github.com/cloudyr/AzureVMmetadata. You can install the development version of the package from GitHub:
::install_github("Azure/AzureVMmetadata") devtools
AzureVMmetadata exposes three environments that contain the metadata for the VM:
instance
: The instance metadata, containing 2
components: compute
and network
attested
: The attested metadata, containing the
base64-encoded PKCS-7 certificate for the VMevents
: The scheduled events for the VMThe first two are automatically populated when the package is loaded;
you can also manually update them with the
update_instance_metadata()
and
update_attested_metadata()
functions. events
is not populated at package startup (it causes the event scheduler
service to be started on the VM, which can take up to several minutes),
but you can update it manually with
update_scheduled_events()
.
## these will only be meaningful when run in an Azure VM
# all compute metadata
::instance$compute
AzureVMmetadata
# VM name and ID
::instance$compute$name
AzureVMmetadata::instance$compute$vmId
AzureVMmetadata
# VM resource details: subscription, resource group, ID
::instance$compute$subscriptionId
AzureVMmetadata::instance$compute$resourceGroupName
AzureVMmetadata::instance$compute$resourceId
AzureVMmetadata
# all network metadata
::instance$network
AzureVMmetadata
# IPv4 address details (1st network interface)
::instance$network$interface[[1]]$ipv4
AzureVMmetadata
# raw PKCS-7 certificate for the VM
::attested$signature
AzureVMmetadata
# certificate as an openssl::cert object
::get_vm_cert() AzureVMmetadata