La fonctionnalité Actions est une fonctionnalité alpha qui étend la gamme des méthodes d'API que Deployment Manager peut appeler. Cette fonctionnalité n'étant pas compatible, nous vous recommandons de migrer votre utilisation existante d'actions vers des alternatives compatibles. L'action couramment utilisée storage.buckets.setIamPolicy
correspond à un type de ressource Deployment Manager existant, virtual.buckets.iamMemberBinding
, que vous pouvez utiliser pour la remplacer.
Migrer votre déploiement de storage.buckets.setIamPolicy
vers virtual.buckets.iamMemberBinding
La ressource virtual.buckets.iamMemberBinding
est une ressource virtuelle qui représente une liaison de stratégie IAM (Identity and Access Management). Son type complet est gcp-types/storage-v1:virtual.buckets.iamMemberBinding
.
virtual.buckets.iamMemberBinding
dispose d'une mise en œuvre personnalisée des opérations CRUD (création, lecture, mise à jour et suppression) du backend Deployment Manager. Elle appelle une méthode semblable à la méthode appelée par l'action storage.buckets.setIamPolicy
, mais elle est modélisée comme une ressource normale et non comme une action, et suit le même cycle de vie qu'un type de ressource normal.
Pour migrer votre déploiement, remplacez votre utilisation de l'action storage.buckets.setIamPolicy
par la ressource virtual.buckets.iamMemberBinding
dans tous vos fichiers de configuration de déploiement. Si vous disposez de plusieurs liaisons, vous aurez peut-être besoin de plusieurs ressources pour mettre en œuvre la même logique. Le type virtuel ne remplace aucune liaison existante sur une ressource, mais corrige les nouvelles.
Exemples d'utilisation pour la migration manuelle
Pour terminer la migration manuellement, reportez-vous aux exemples d'utilisation suivants. Dans certains cas, comme l'application de plusieurs liaisons IAM, vous devrez peut-être ajouter metadata.dependsOn
ou des références à d'autres ressources à la ressource iamMemberBinding
afin d'éviter des situations telles que des conditions de concurrence.
YAML + Jinja
Voici un exemple d'utilisation de l'action setIamPolicy
dans un fichier de configuration YAML. Cette approche n'est pas compatible et doit être remplacée par l'utilisation de la ressource virtuelle iamMemberBinding
:
- name: patch-iam-policy
action: gcp-types/storage-v1:storage.buckets.setIamPolicy
properties:
bucket:
policy: # existing policy, e.g. from a getIamPolicyAction
gcpIamPolicyPatch:
add:
L'exemple suivant montre l'utilisation recommandée de la ressource virtuelle iamMemberBinding
dans un modèle YAML et Jinja :
{% set BUCKETNAME = "bucket-" + env["deployment"] %}
resources:
- type: gcp-types/storage-v1:buckets
name: {{ BUCKETNAME }}
properties:
location: US
storageClass: STANDARD
- type: gcp-types/storage-v1:virtual.buckets.iamMemberBinding
name: test-bucket-iam
properties:
bucket: $(ref.{{ BUCKETNAME }}.name)
member: projectEditor:{{ env["project"] }}
role: roles/storage.admin
Python
Voici un exemple d'utilisation de l'action setIamPolicy
dans un modèle Python. Cette approche n'est pas compatible et doit être remplacée par l'utilisation de la ressource virtuelle iamMemberBinding
:
L'exemple suivant montre l'utilisation recommandée de la ressource virtuelle iamMemberBinding
dans un modèle Python :
Vous trouverez des exemples supplémentaires liés au modèle gcs-bucket.py
dans le dépôt cloud-foundation-toolkit
sur GitHub. Pour obtenir une démonstration détaillée du processus de conversion du modèle gcs-bucket.py
depuis l'utilisation de l'action setIamPolicy
vers l'utilisation de la ressource virtuelle iamMemberBinding
, reportez-vous à l'exemple de conversion.
Vous pouvez également trouver des exemples d'utilisation du modèle converti.