La función Actions es una función Alfa, que expande el rango de métodos de la API a los que Deployment Manager puede llamar. Debido a que esta función no es compatible, te recomendamos que migres tu uso existente de Actions a alternativas compatibles. La acción storage.buckets.setIamPolicy
que se usa con frecuencia corresponde a un tipo de recurso existente de Deployment Manager, virtual.buckets.iamMemberBinding
, que puedes usar para reemplazarla.
Migra tu implementación de storage.buckets.setIamPolicy
a virtual.buckets.iamMemberBinding
El recurso virtual.buckets.iamMemberBinding
es un recurso virtual que representa una vinculación de política de administració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) desde el backend de Deployment Manager. Llama a un método similar al método que llama la acción storage.buckets.setIamPolicy
, pero se modela como un recurso normal, en lugar de una acción y sigue el mismo ciclo de vida que un tipo de recurso normal.
Para migrar tu implementación, reemplaza el uso de la acción storage.buckets.setIamPolicy
por el recurso virtual.buckets.iamMemberBinding
en todos los archivos de configuración de la implementación. Si tienes varias vinculaciones, es posible que necesites varios recursos para implementar la misma lógica en ellas. El tipo virtual no reemplaza ninguna vinculación existente en un recurso, pero aplica parches a las nuevas.
Ejemplos de uso para la migración manual
A fin de completar la migración de forma manual, consulta los siguientes ejemplos de uso. En ciertos casos, como la aplicación de varias vinculaciones de IAM, es posible que debas agregar metadata.dependsOn
o referencias a otros recursos al recurso iamMemberBinding
para evitar situaciones como condiciones de carrera.
YAML + Jinja
El siguiente es un ejemplo de cómo se usa la acción setIamPolicy
en un archivo de configuración YAML. Este enfoque no es compatible y debe reemplazarse 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 es compatible y debe reemplazarse 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 muestras adicionales relacionadas con la plantilla gcs-bucket.py
en el repositorio cloud-foundation-toolkit
en GitHub. Para obtener una demostración detallada del proceso de conversión de la plantilla gcs-bucket.py
del uso de la acción setIamPolicy
al uso del recurso virtual iamMemberBinding
, consulta la conversión de ejemplo.
También puedes encontrar ejemplos de uso de la plantilla convertida.