La función Actions es una función alfa que amplía la gama de métodos de la API a los que puede llamar Deployment Manager. Como esta función no es compatible, te recomendamos que migres el uso que haces de las acciones a alternativas compatibles. El tipo Action
storage.buckets.setIamPolicy
corresponde a un tipo de recurso de Deployment Manager, virtual.buckets.iamMemberBinding
, que puedes usar para sustituirlo.
Migrar una implementación de storage.buckets.setIamPolicy
a virtual.buckets.iamMemberBinding
El recurso virtual.buckets.iamMemberBinding
es un recurso virtual que representa un enlace de política de Gestión de Identidades y Accesos (IAM). Su tipo completo es
gcp-types/storage-v1:virtual.buckets.iamMemberBinding
.
virtual.buckets.iamMemberBinding
tiene una implementación personalizada de las operaciones de creación, lectura, actualización y eliminación (CRUD) del backend de Deployment Manager. Llama a un método similar al que llama la acción storage.buckets.setIamPolicy
, pero se modela como un recurso normal en lugar de como una acción y sigue el mismo ciclo de vida que un tipo de recurso normal.
Para migrar tu implementación, sustituye el uso de Action
storage.buckets.setIamPolicy
por el recurso
virtual.buckets.iamMemberBinding
en todos los archivos de configuración de tu implementación. Si tienes varias vinculaciones, es posible que necesites varios recursos para implementar la misma lógica en todas ellas. El tipo virtual no sustituye a ningún enlace de un recurso, sino que aplica los nuevos.
Ejemplos de uso para migrar manualmente
Para completar la migración manualmente, consulta los siguientes ejemplos de uso. En
algunos casos, como la aplicación de varias vinculaciones de IAM,
puede que tengas que añadir metadata.dependsOn
o referencias a otros recursos al recurso iamMemberBinding
para evitar situaciones como las condiciones de carrera.
YAML + Jinja
A continuación, se muestra un ejemplo de cómo se usa la acción setIamPolicy
en un archivo de configuración YAML. Este enfoque no se admite y debe sustituirse por el uso del recurso virtual 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:
En el siguiente ejemplo se muestra el uso recomendado del recurso virtual iamMemberBinding
en una plantilla YAML y 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
A continuación, se muestra un ejemplo de cómo se usa la acción setIamPolicy
en una plantilla de Python. Este enfoque no se admite y debe sustituirse por el uso del recurso virtual iamMemberBinding
:
En el siguiente ejemplo se muestra el uso recomendado del recurso virtual iamMemberBinding
en una plantilla de Python:
Puedes encontrar más ejemplos relacionados con la plantilla gcs-bucket.py
en el repositorio cloud-foundation-toolkit
de GitHub. Para ver una demostración detallada del proceso de conversión de la plantilla gcs-bucket.py
de usar la acción setIamPolicy
a usar el recurso virtual iamMemberBinding
, consulta el ejemplo de conversión.
También puedes consultar ejemplos de uso de la plantilla convertida.