Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Bicep est un langage spécifique à un domaine (DSL) qui utilise la syntaxe déclarative pour déployer des ressources Azure. Il fournit une syntaxe concise, une cohérence des types fiable et une prise en charge de la réutilisation du code. Bicep offre la meilleure expérience de création pour vos solutions d’infrastructure en tant que code dans Azure.
Cet article inclut un exemple de fichier Bicep pour démarrer dans Azure Chaos Studio, notamment :
- Intégration d’une ressource en tant que cible (par exemple, une machine virtuelle)
- Activation des fonctionnalités sur la cible (par exemple, Arrêt de machine virtuelle)
- Création d’une expérience Chaos Studio
- Affectation des autorisations nécessaires à l’exécution de l’expérience
Créer une expérience d'arrêt d'une machine virtuelle
Dans cet exemple, nous créons une expérience de chaos avec une seule ressource cible et une seule erreur d’arrêt de machine virtuelle. Vous pouvez modifier l’expérience en référençant la bibliothèque d’erreurs et les attributions de rôles recommandées.
Prérequis
Cet exemple suppose ce qui suit :
- Le fournisseur de ressources Chaos Studio est déjà inscrit auprès de votre abonnement Azure
- Vous disposez déjà d’un groupe de ressources dans une région prise en charge par Chaos Studio
- Une machine virtuelle est déployée dans le groupe de ressources
Passer en revue le fichier Bicep
@description('The existing virtual machine resource you want to target in this experiment')
param targetName string
@description('Desired name for your Chaos Experiment')
param experimentName string
@description('Desired region for the experiment, targets, and capabilities')
param location string = resourceGroup().location
// Define Chaos Studio experiment steps for a basic Virtual Machine Shutdown experiment
param experimentSteps array = [
{
name: 'Step1'
branches: [
{
name: 'Branch1'
actions: [
{
name: 'urn:csci:microsoft:virtualMachine:shutdown/1.0'
type: 'continuous'
duration: 'PT10M'
parameters: [
{
key: 'abruptShutdown'
value: 'true'
}
]
selectorId: 'Selector1'
}
]
}
]
}
]
// Reference the existing Virtual Machine resource
resource vm 'Microsoft.Compute/virtualMachines@2023-03-01' existing = {
name: targetName
}
// Deploy the Chaos Studio target resource to the Virtual Machine
resource chaosTarget 'Microsoft.Chaos/targets@2024-01-01' = {
name: 'Microsoft-VirtualMachine'
location: location
scope: vm
properties: {}
// Define the capability -- in this case, VM Shutdown
resource chaosCapability 'capabilities' = {
name: 'Shutdown-1.0'
}
}
// Define the role definition for the Chaos experiment
resource chaosRoleDefinition 'Microsoft.Authorization/roleDefinitions@2022-04-01' existing = {
scope: vm
// In this case, Virtual Machine Contributor role -- see https://learn.microsoft.com/azure/role-based-access-control/built-in-roles
name: '9980e02c-c2be-4d73-94e8-173b1dc7cf3c'
}
// Define the role assignment for the Chaos experiment
resource chaosRoleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(vm.id, chaosExperiment.id, chaosRoleDefinition.id)
scope: vm
properties: {
roleDefinitionId: chaosRoleDefinition.id
principalId: chaosExperiment.identity.principalId
principalType: 'ServicePrincipal'
}
}
// Deploy the Chaos Studio experiment resource
resource chaosExperiment 'Microsoft.Chaos/experiments@2024-01-01' = {
name: experimentName
location: location // Doesn't need to be the same as the Targets & Capabilities location
identity: {
type: 'SystemAssigned'
}
properties: {
selectors: [
{
id: 'Selector1'
type: 'List'
targets: [
{
id: chaosTarget.id
type: 'ChaosTarget'
}
]
}
]
steps: experimentSteps
}
}
Déployer le fichier Bicep
Enregistrez le fichier Bicep en tant que
chaos-vm-shutdown.bicepsur votre ordinateur local.Déployez le fichier Bicep à l’aide d’Azure CLI ou d’Azure PowerShell, en remplaçant
exampleRGpar le groupe de ressources existant qui inclut la machine virtuelle que vous souhaitez cibler.az deployment group create --resource-group exampleRG --template-file chaos-vm-shutdown.bicepQuand vous y êtes invité, entrez les valeurs suivantes :
- targetName : nom d’une machine virtuelle existante au sein de votre groupe de ressources que vous souhaitez cibler
- experimentName : nom souhaité pour votre expérience Chaos
Le modèle doit être déployé en quelques minutes. Une fois le déploiement terminé, accédez à Chaos Studio dans le Portail Azure, sélectionnez Expériences, puis recherchez l’expérience créée par le modèle. Sélectionnez-la, puis Démarrez l’expérience.