Lorsque vous créez un modèle de cloud dans Cloud Assembly, la palette des types de ressource comporte des types de ressource pour le compte de cloud et les points de terminaison d'intégration pris en charge. Vous pouvez avoir des cas d'utilisation dans lesquels vous souhaitez créer des modèles de cloud selon une liste développée de types de ressource. Vous pouvez créer des types de ressources personnalisés, les ajouter au canevas de conception, et créer des modèles de cloud qui prennent en charge vos besoins en matière de conception et de déploiement.
Nom de ressource personnalisée et type de ressource
Le nom de la ressource personnalisée identifie votre ressource personnalisée dans la palette des types de ressource de modèle de cloud.
Le type de ressource d'une ressource personnalisée doit commencer par Custom. et chaque type de ressource doit être unique. Par exemple, vous pouvez définir Custom.ADUser
comme type de ressource pour une ressource personnalisée qui ajoute des utilisateurs Active Directory. Bien que l'ajout de Custom. ne soit pas validé dans le champ, la chaîne est automatiquement ajoutée si vous la supprimez.
Ressources personnalisées d'action d'extensibilité
Avec les types de ressources personnalisés, vous pouvez utiliser des actions d'extensibilité dans les modèles de cloud pour créer des applications complexes. Par exemple, vous pouvez utiliser l'intégration native d'actions d'extensibilité avec Amazon Web Services et Microsoft Azure pour facilement les intégrer à leurs services respectifs. Vous pouvez créer des ressources personnalisées d'action d'extensibilité en cliquant sur l'option Basé sur dans l'éditeur de ressources personnalisées et en sélectionnant Schéma ABX défini par l'utilisateur.
Actions de cycle de vie pour les ressources personnalisées d'actions d'extensibilité
Lorsque vous utilisez une action d'extensibilité pour votre ressource personnalisée, vous pouvez définir les actions de cycle de vie suivantes :
- Créer : cette action d'extensibilité est appelée lors du démarrage d'un déploiement.
- Lire : cette action d'extensibilité est utilisée pour récupérer le dernier état de la ressource déployée.
- Mettre à jour : cette action d'extensibilité est appelée lorsqu'une propriété de modèle de cloud est mise à jour. Cette action est déclenchée uniquement lorsqu'une propriété n'est pas marquée avec
recreateOnUpdate
. - Détruire : cette action d'extensibilité est appelée lorsqu'un déploiement est supprimé.
Ces actions de cycle de vie peuvent être sélectionnées manuellement à partir de vos actions d'extensibilité existantes ou générées automatiquement en sélectionnant l'option Générer des actions. Lorsque vous sélectionnez l'option Générer des actions, vous devez spécifier le projet dans lequel la nouvelle action d'extensibilité sera générée.
Ressources personnalisées de vRealize Orchestrator
Properties
,
Date
,
string
et
number
ne sont pas pris en charge pour la création de types de ressources personnalisées.
AD:UserGroup
est un type d'objet SDK utilisé pour gérer les groupes d'utilisateurs Active Directory.
Type externe de ressource personnalisée vRealize Orchestrator.
La propriété Type externe définit le type de votre ressource personnalisée vRealize Orchestrator. Lorsque vous sélectionnez un workflow de création dans votre type de ressource personnalisée dans Cloud Assembly, le menu déroulant Type externe s'affiche en dessous. Le menu déroulant inclut des propriétés de type externe, qui sont sélectionnées dans les paramètres de sortie du workflow vRealize Orchestrator. Les propriétés de sortie de workflow sélectionnées incluses dans le menu déroulant doivent être des types d'objets SDK autres que de tableau, tels que VC:VirtualMachine
ou AD:UserGroup
.
DynamicTypesManager.getObject()
.
Lorsque vous définissez vos types de ressources personnalisés, vous définissez également l'étendue de la disponibilité du type externe sélectionné. Le type externe sélectionné peut être :
- Partagé entre projets.
- Disponible uniquement pour le projet sélectionné.
Vous ne pouvez avoir qu'un seul type de ressource personnalisée avec une valeur de type externe spécifique par étendue définie. Par exemple, si vous créez une ressource personnalisée dans votre projet qui utilise VC:VirtualMachine
comme type externe, vous ne pouvez pas créer une autre ressource personnalisée pour le même projet qui utilise le même type externe. Vous ne pouvez pas non plus créer deux ressources personnalisées partagées qui utilisent le même type externe.
Validation de l'action du cycle de vie de vRealize Orchestrator
Lorsque vous ajoutez des workflows Créer, Supprimer et Mettre à jour en tant qu'actions de cycle de vie à vos ressources personnalisées, Cloud Assembly vérifie que les workflows sélectionnés ont des définitions de propriétés d'entrée et de sortie correctes.
- Le workflow de création doit avoir un paramètre de sortie qui est un type d'objet SDK, tel que
SSH:Host
ouSQL:Database
. Si le workflow sélectionné ne réussit pas la validation, vous ne pouvez pas ajouter de workflows Mettre à jour ou Supprimer, ni enregistrer vos modifications dans la ressource personnalisée. - Le workflow Supprimer doit avoir un paramètre d'entrée qui est un type d'objet SDK qui correspond au type externe de la ressource personnalisée.
- Le workflow Mettre à jour doit avoir un paramètre d'entrée et de sortie qui est un type d'objet SDK qui correspond au type externe de la ressource personnalisée.
Schéma de propriété de ressource personnalisée
domain
et
location
, l'action
Lire doit également renvoyer les mêmes propriétés avec les mêmes noms.
Vous pouvez modifier le schéma de propriété pour les ressources personnalisées en accédant à l'onglet Propriétés et en utilisant l'onglet Code ou Formulaire.
- Code : modifiez le schéma de propriété à l'aide du contenu YAML. Lorsque vous sélectionnez cette option, le schéma de propriété est défini à l’aide du schéma JSON.
- Formulaire : pour les ressources personnalisées d'action d'extensibilité, en cliquant sur Nouvelle propriété, vous créez une propriété en configurant son nom, son nom complet, sa description, son type de propriété et sa valeur par défaut. Pour les ressources personnalisées de vRealize Orchestrator, vous pouvez également masquer les propriétés non requises et non calculées dans le schéma en cliquant sur Supprimer la propriété.
Formulaires de demande personnalisés pour les opérations de jour 2
Vous pouvez rationaliser le formulaire de demande des opérations du jour 2 incluses dans votre ressource personnalisée en ajoutant et en modifiant différents types de propriétés de ressources.
Par exemple, vous pouvez lier la valeur d'un paramètre d'entrée dans votre formulaire de demande à une source externe, comme une action de vRealize Orchestrator qui récupère un nom de déploiement ou un nom de projet. Vous pouvez également lier la valeur d'un paramètre d'entrée spécifique à la valeur calculée de deux autres zones de texte incluses dans le même formulaire de demande.
Validation du formulaire de demande d'opération de jour 2
Vous pouvez valider le formulaire de demande de vos opérations de jour 2 en ajoutant une validation externe. À l'aide d'une validation externe, vous empêchez l'utilisateur d'envoyer le formulaire de demande tant que les paramètres de validation ne sont pas satisfaits. Vous pouvez ajouter une validation externe à partir de l'onglet Validations de la page Paramètres de demande de l'éditeur d'actions sur les ressources personnalisées ou sur les ressources. Après avoir sélectionné l'onglet, vous pouvez faire glisser un élément Validation d'Orchestrator sur le canevas et ajouter une action vRealize Orchestrator que vous souhaitez utiliser pour la validation.
Par exemple, vous pouvez créer une ressource personnalisée qui inclut une opération de jour 2 pour modifier un mot de passe d’utilisateur. Pour ce cas d'utilisation, vous pouvez ajouter une action vRealize Orchestrator avec des paramètres d'entrée newPassword
et confirmPassword
qui utilisent le type SecureString
.
if (newPassword != confirmPassword) { return 'passwords are different'; } if (newPassword.lenght < 7) { return 'password must be at least 10 symbols'; } return null;