La funzionalità Azioni è una funzionalità alpha che amplia la gamma di metodi API che Deployment Manager può chiamare. Poiché questa funzionalità non è supportata, ti consigliamo di eseguire la migrazione dell'utilizzo esistente di Actions ad alternative supportate. L'azione storage.buckets.setIamPolicy
di uso comune 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'associazione di 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 dall'azionestorage.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ù associazioni, potresti aver bisogno di più risorse per implementare la stessa logica in tutte. Il tipo virtuale non sostituisce le associazioni esistenti in una risorsa, ma applica patch alle nuove.
Esempi di utilizzo per la migrazione manuale
Per completare la migrazione manualmente, consulta i seguenti esempi di utilizzo. In alcuni casi, ad esempio per l'applicazione di più associazioni IAM, potresti dover aggiungere metadata.dependsOn
o riferimenti ad altre risorse alla risorsa iamMemberBinding
per evitare situazioni come le condizioni di gara.
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:
Il seguente esempio 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
:
L'esempio seguente 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
modello gcs-bucket.py
dall'utilizzo dell'azione setIamPolicy
all'utilizzo della
risorsa virtuale iamMemberBinding
, consulta la
conversione di esempio.
Puoi anche trovare
esempi di utilizzo
del modello convertito.