La funzionalità Azioni è una funzionalità alpha che espande la gamma di metodi dell'API che Deployment Manager può chiamare. Poiché questa funzionalità non è supportata, ti consigliamo di eseguire la migrazione dell'utilizzo esistente di Actions alle alternative supportate. L'azione di uso comune storage.buckets.setIamPolicy
corrisponde a un tipo di risorsa Deployment Manager esistente, virtual.buckets.iamMemberBinding
, che puoi utilizzare in sostituzione.
Migrazione del deployment da storage.buckets.setIamPolicy
a virtual.buckets.iamMemberBinding
in corso...
La risorsa virtual.buckets.iamMemberBinding
è una risorsa virtuale che rappresenta un'associazione dei criteri IAM (Identity and Access Management). 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. Richiama un metodo simile a quello chiamato dall'Azione storage.buckets.setIamPolicy
, ma è modellato come risorsa normale anziché come 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, potrebbero essere necessarie più risorse per implementare la stessa logica tra loro. Il tipo virtuale non sostituisce alcuna associazione esistente su una risorsa, ma applica l'applicazione di quelle nuove.
Esempi di utilizzo per la migrazione manuale
Per completare la migrazione manualmente, fai riferimento ai seguenti esempi di utilizzo. In
determinati casi, ad esempio nell'applicazione di più associazioni IAM,
potrebbe essere necessario aggiungere metadata.dependsOn
o riferimenti ad altre risorse alla
risorsa iamMemberBinding
per evitare situazioni come race_condition.
YAML + Jinja
Di seguito è riportato un esempio di come l'azione setIamPolicy
viene utilizzata 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 l'azione setIamPolicy
viene utilizzata 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 ulteriori esempi relativi al modello gcs-bucket.py
nel repository cloud-foundation-toolkit
su GitHub. Per una dimostrazione dettagliata del processo 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.