Trabajar con cmdlets

En esta sección, se describe cómo utilizar los módulos de OCI para cmdlets PowerShell.

Los módulos OCI para cmdlets de PowerShell se basan en el SDK de Oracle Cloud Infrastructure para .NET. Estos cmdlets hacen llamadas a la API de REST de Oracle Cloud Infrastructure con los valores de parámetros cmdlet transferidos.

Nota

Los parámetros de cmdlet se denominan en función de los parámetros de API de REST respectivos que se muestran en la referencia de API.

Las API de REST de OCI utilizan solicitudes y respuestas HTTPS. Para obtener más información, consulte Acerca de la API.

Detección de cmdlet

Los cmdlets de OCI se denominan con un patrón de par verbo -noun, donde verbo es la operación denota el nombre en el recurso, que generalmente incluye el nombre de servicio seguido del nombre de ese recurso en ese servicio.

Por ejemplo, el siguiente comando devuelve todos los cmdlets disponibles para trabajar con un recursos de instancia informática en el servicio de recursos informáticos, que es parte del módulo OCI Core PowerShell:

PS /> Get-Command -Module OCI.PSModules.Core -Noun "*ComputeInstance*"
 
CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Get-OCIComputeInstance                             0.1.0      OCI.PSModules.Core
Cmdlet          Get-OCIComputeInstanceConsoleConnection            0.1.0      OCI.PSModules.Core
Cmdlet          Get-OCIComputeInstanceConsoleConnectionsList       0.1.0      OCI.PSModules.Core
Cmdlet          Get-OCIComputeInstanceDevicesList                  0.1.0      OCI.PSModules.Core
Cmdlet          Get-OCIComputeInstancesList                        0.1.0      OCI.PSModules.Core
Cmdlet          Invoke-OCIComputeInstanceAction                    0.1.0      OCI.PSModules.Core
Cmdlet          Move-OCIComputeInstanceCompartment                 0.1.0      OCI.PSModules.Core
Cmdlet          New-OCIComputeInstance                             0.1.0      OCI.PSModules.Core
Cmdlet          New-OCIComputeInstanceConsoleConnection            0.1.0      OCI.PSModules.Core
Cmdlet          Remove-OCIComputeInstanceConsoleConnection         0.1.0      OCI.PSModules.Core
Cmdlet          Update-OCIComputeInstance                          0.1.0      OCI.PSModules.Core
Nota

El estándar Get-Command se puede utilizar para encontrar cmdlets presentes en cualquier módulo.

Cmdlet de ejemplo

En este ejemplo, se muestra cómo llamar a un cmdlet de OCI simple que llama a la operación GetNamespace del servicio Object Storage de OCI. Esta operación devuelve el nombre del espacio de nombres de Object Storage al usuario que realiza la solicitud.

Nota

Instale e importe el servicio ObjectStorage antes de probar este ejemplo. Para obtener más información, consulte Instalación.
PS /> Get-OCIObjectStorageNamespace
  
us-phx-test-namespace

Ayuda de cmdlet

Para obtener información de ayuda para un cmdlet, utilice el Obtener ayuda de cmdlet, transfiriendo el nombre del cmdlet como parámetro.

Nota

Para obtener información de ayuda más detallada, utilice el parámetro -Full.
En este ejemplo, se muestra la salida de ayuda para el cmdlet Get-OCIObjectStorageNamespace:
PS /> Get-Help Get-OCIObjectStorageNamespace
 
NAME
    Get-OCIObjectStorageNamespace
     
SYNOPSIS
    Invokes ObjectStorage service - GetNamespace operation.
     
     
SYNTAX
    Get-OCIObjectStorageNamespace [-OpcClientRequestId <String>] [-CompartmentId <String>] [-ConfigFile <String>] [-Endpoint <String>] [-NoRetry
    <SwitchParameter>] [-Profile <String>] [-Region <String>] [-FullResponse <SwitchParameter>] [-TimeOutInMillis <Int32>] [<CommonParameters>]
     
     
DESCRIPTION
    Each Oracle Cloud Infrastructure tenant is assigned one unique and uneditable Object Storage namespace. The namespace   is a system-generated string
    assigned during account creation. For some older tenancies, the namespace string may be   the tenancy name in all lower-case letters. You cannot edit a
    namespace.   GetNamespace returns the name of the Object Storage namespace for the user making the request.   If an optional compartmentId query parameter
    is provided, GetNamespace returns the namespace name of the corresponding   tenancy, provided the user has access to it.
     
 
RELATED LINKS
    APIReference https://docs.cloud.oracle.com/en-us/iaas/api/
 
REMARKS
    To see the examples, type: "Get-Help Get-OCIObjectStorageNamespace -Examples"
    For more information, type: "Get-Help Get-OCIObjectStorageNamespace -Detailed"
    For technical information, type: "Get-Help Get-OCIObjectStorageNamespace -Full"
    For online help, type: "Get-Help Get-OCIObjectStorageNamespace -Online

Parámetros comunes

En esta sección, se describen los parámetros cmdlet opcionales comunes a todos los cmdlets presentes en cualquier módulo de servicio PowerShell de OCI.

ConfigFile

Ruta de acceso al archivo de configuración que proporciona credenciales para Oracle Cloud.

Endpoint

Indica el punto final de servicio que se utilizará para las llamadas de API de OCI, incluida cualquier ruta de acceso de versión de API necesaria. Por ejemplo, https://audit.us-ashburn-1.oraclecloud.com

FullResponse

Por defecto, los cmdlets de OCI muestran el cuerpo de respuesta de la operación de API de REST. Incluir el parámetro de conmutador FullResponse indica que el cmdlet debe producir la respuesta completa que devuelve la operación de API ajustada a su tipo .NET asociado (un objeto que contiene cabeceras de respuesta de API además de un cuerpo de respuesta opcional).

NoRetry

Un parámetro de conmutador para desactivar la lógica de reintento por defecto para llamadas a servicios.

Por defecto, los módulos OCI para PowerShell han fallado al reintentar las llamadas de API que devuelven los códigos de estado 400, 401, 404, 409, 429 y 500. Los reintentos utilizan un algoritmo de retroceso exponencial con un máximo de 5 intentos durante un período de tiempo máximo de 10 minutos. Incluya este parámetro de conmutador en la llamada de cmdlet para desactivar la lógica de reintento por defecto.

Profile

Especifica qué perfil del archivo de configuración cargar. Este parámetro espera que exista un nombre del perfil sensible a mayúsculas/minúsculas en el archivo de configuración.

Region

Especifica el ID de región de la región en la que se deben realizar llamadas. Por ejemplo: us-phoenix-1 o ap-singapore-1.

TimeOutInMillis

Especifica el tiempo máximo de espera en milisegundos para terminar la solicitud de API. El valor por defecto es 100 000 milisegundos (100 segundos).

AuthType

Define el tipo de autenticación que se utilizará para realizar solicitudes de API. Por defecto, se utiliza la clave de API del archivo de configuración. Los valores válidos son ApiKey o InstancePrincipal.

Entrada y salida de cmdlet

En esta sección se describe cómo los cmdlets de OCI procesan la entrada y la salida.

Entrada de cmdlet

Los cmdlets de OCI aceptan actualmente entradas de parámetros de línea de comandos o mediante pipeline por nombres de propiedad. Para ver un ejemplo sobre cómo transferir entradas por pipeline por nombre de propiedad, consulte este ejemplo.

Salida de cmdlet

Por defecto, los cmdlets de OCI devuelven solo el cuerpo de respuesta de API encapsulado en un tipo .NET asociado. Para casos de uso que requieran que los usuarios inspeccionen la respuesta completa de la API, incluidas las cabeceras de respuesta, utilice el parámetro de conmutador FullResponse en la llamada de cmdlet.

En el siguiente ejemplo, la operación GetConfiguration del servicio de auditoría de OCI devuelve un recurso Configuration en el cuerpo de respuesta.

Nota

Para ejecutar el siguiente ejemplo, importe OCI.PSModules.Audit.
PS /> Get-OCIAuditConfiguration -CompartmentId $env:CompartmentId | gm
 
   TypeName: Oci.AuditService.Models.Configuration
 
Name                MemberType Definition
----                ---------- ----------
Equals              Method     bool Equals(System.Object obj)
GetHashCode         Method     int GetHashCode()
GetType             Method     type GetType()
ToString            Method     string ToString()
RetentionPeriodDays Property   System.Nullable[int] RetentionPeriodDays {get;set;}

En la salida de ejemplo anterior, la llamada por defecto solo devuelve el objeto .NET que encapsula el cuerpo de respuesta de API.

Para obtener un objeto de salida que incluya la respuesta completa de API, incluya el parámetro -FullResponse en la llamada de cmdlet. Por ejemplo:

PS /> Get-OCIAuditConfiguration -CompartmentId $env:CompartmentId -FullResponse | gm                                                              
 
   TypeName: Oci.AuditService.Responses.GetConfigurationResponse
 
Name          MemberType Definition
----          ---------- ----------
Equals        Method     bool Equals(System.Object obj)
GetHashCode   Method     int GetHashCode()
GetType       Method     type GetType()
ToString      Method     string ToString()
Configuration Property   Oci.AuditService.Models.Configuration Configuration {get;set;}

Llamadas asíncronas

Para las APIs de Oracle Cloud que devuelven una respuesta de solicitud de trabajo asíncrona, con opc-work-request-id en la cabecera de respuesta y sin cuerpo de respuestas, los cmdlets de PowerShell de OCI devuelven un objeto Oci.PSModules.Common.Cmdlets.WorkRequest que contiene la propiedad OpcWorkRequestId.

Por ejemplo:


   TypeName: Oci.PSModules.Common.Cmdlets.WorkRequest
 
Name             MemberType Definition
----             ---------- ----------
Equals           Method     bool Equals(System.Object obj)
GetHashCode      Method     int GetHashCode()
GetType          Method     type GetType()
ToString         Method     string ToString()
OpcWorkRequestId Property   string OpcWorkRequestId {get;set;}

Gestión de errores

Si se produce un error al ejecutar un cmdlet de OCI, el cmdlet devuelve un error de terminacióncon un registro de error que contiene la excepción y un mensaje de error sobre la causa subyacente.