La funzionalità Azioni è una funzionalità alpha
che espande la gamma di metodi API che Deployment Manager può
chiamare. Poiché questa funzionalità non è supportata, ti consigliamo di
migrare l'utilizzo esistente
delle azioni ad alternative supportate. L'azione utilizzata di frequente
storage.buckets.setIamPolicy
corrisponde a un tipo di risorsa
Deployment Manager esistente, virtual.buckets.iamMemberBinding
, che puoi utilizzare per sostituirla.
Migrazione del deployment da storage.buckets.setIamPolicy
a virtual.buckets.iamMemberBinding
La risorsa virtual.buckets.iamMemberBinding
è una risorsa virtuale che
rappresenta un binding dei criteri Identity and Access Management (IAM). Il tipo completo è
gcp-types/storage-v1:virtual.buckets.iamMemberBinding
.
virtual.buckets.iamMemberBinding
ha un'implementazione personalizzata delle operazioni di creazione,
lettura, aggiornamento ed eliminazione (CRUD) dal backend di Deployment Manager. Chiama un metodo simile a quello chiamato da Action
storage.buckets.setIamPolicy
, ma è modellato come una normale risorsa anziché
come un'azione e segue lo stesso ciclo di vita di un normale tipo di risorsa.
Per eseguire la migrazione del deployment, sostituisci l'utilizzo dell'azione
storage.buckets.setIamPolicy
con la risorsa
virtual.buckets.iamMemberBinding
in tutti i file di configurazione del deployment. Se hai più binding, potresti aver bisogno di più risorse per
implementare la stessa logica. Il tipo virtuale non sostituisce
i binding esistenti su una risorsa, ma applica le patch a quelli nuovi.
Esempi di utilizzo per la migrazione manuale
Per completare la migrazione manualmente, consulta i seguenti esempi di utilizzo. In
alcuni casi, ad esempio l'applicazione di più binding IAM,
potrebbe essere necessario aggiungere metadata.dependsOn
o riferimenti ad altre risorse alla
risorsa iamMemberBinding
per evitare situazioni come le race condition.
YAML + Jinja
Di seguito è riportato un esempio di come viene utilizzata l'azione setIamPolicy
in un file di configurazione YAML. Questo approccio non è supportato e deve essere sostituito
con l'utilizzo della risorsa virtuale 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'esempio seguente mostra l'utilizzo consigliato della risorsa virtuale iamMemberBinding
in un modello YAML e 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
Di seguito è riportato un esempio di come viene utilizzata l'azione setIamPolicy
in un modello Python. Questo approccio non è supportato e deve essere sostituito con
l'utilizzo della risorsa virtuale iamMemberBinding
:
Il seguente esempio mostra l'utilizzo consigliato della risorsa virtuale iamMemberBinding
in un modello Python:
Puoi trovare altri esempi relativi al
modello gcs-bucket.py
nel
repository cloud-foundation-toolkit
su GitHub. Per una dimostrazione dettagliata della procedura di conversione del
template gcs-bucket.py
dall'utilizzo dell'azione setIamPolicy
all'utilizzo della
risorsa virtuale iamMemberBinding
, consulta l'esempio di conversione.
Puoi anche trovare
esempi di utilizzo
del modello convertito.