La funzionalità Azioni è una funzionalità alfa
che espande la gamma di metodi API che Deployment Manager può
chiamare. Poiché questa funzionalità non è supportata, ti consigliamo di
eseguire la migrazione dell'utilizzo esistente
delle azioni 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.
Eseguire la migrazione del deployment da storage.buckets.setIamPolicy a virtual.buckets.iamMemberBinding
La risorsa virtual.buckets.iamMemberBinding è una risorsa virtuale che rappresenta un'associazione di policy 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'azione storage.buckets.setIamPolicy, ma viene modellato come una risorsa normale anziché come un'azione e segue lo stesso ciclo di vita di un tipo di risorsa normale.
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. Il tipo virtuale non sostituisce le associazioni esistenti su una risorsa, ma applica le nuove.
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ù associazioni 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:
L'esempio seguente mostra l'utilizzo consigliato della risorsa virtuale iamMemberBinding in un modello Python:
Puoi trovare altri esempi relativi al
gcs-bucket.py modello
nel
cloud-foundation-toolkit repository
su GitHub. Per una dimostrazione dettagliata della procedura di conversione del
gcs-bucket.py modello 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.