Para crear una colección (CLI) - Amazon OpenSearch Service

Para crear una colección (CLI)

Utilice los procedimientos de esta sección para crear una colección OpenSearch sin servidor mediante la AWS CLI.

Antes de empezar

Antes de crear una colección mediante la AWS CLI, utilice el siguiente procedimiento a fin de crear las políticas necesarias para la colección.

nota

En cada uno de los siguientes procedimientos, al especificar un nombre para una colección, el nombre debe cumplir los siguientes criterios:

  • Debe ser único para la cuenta y la Región de AWS

  • Contener solo letras minúsculas de la a a la z, números del 0 al 9 y un guion (-)

  • Contener entre 3 y 32 caracteres

Para crear las políticas necesarias de una colección
  1. Abra la AWS CLI y ejecute el siguiente comando para crear una política de cifrado con un patrón de recursos que coincida con el nombre previsto para la colección.

    aws opensearchserverless create-security-policy \ --name policy name \ --type encryption --policy "{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/collection name\"]}],\"AWSOwnedKey\":true}"

    Por ejemplo, si planea nombrar la colección como registros de la aplicación, puede crear una política de cifrado como esta:

    aws opensearchserverless create-security-policy \ --name logs-policy \ --type encryption --policy "{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/logs-application\"]}],\"AWSOwnedKey\":true}"

    Si piensa utilizar la política para colecciones adicionales, puede hacer que la regla sea más amplia, como collection/logs* o collection/*.

  2. Ejecute el siguiente comando para configurar los ajustes de la red para la colección mediante una política de red. Es posible crear políticas de red después de crear una colección, pero le recomendamos que lo haga de antemano.

    aws opensearchserverless create-security-policy \ --name policy name \ --type network --policy "[{\"Description\":\"description\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection\/collection name\"]},{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/collection name\"]}],\"AllowFromPublic\":true}]"

    Para seguir con el ejemplo anterior, logs-application, puede crear la siguiente política de red:

    aws opensearchserverless create-security-policy \ --name logs-policy \ --type network --policy "[{\"Description\":\"Public access for logs collection\",\"Rules\":[{\"ResourceType\":\"dashboard\",\"Resource\":[\"collection\/logs-application\"]},{\"ResourceType\":\"collection\",\"Resource\":[\"collection\/logs-application\"]}],\"AllowFromPublic\":true}]"

Creación de una colección

El siguiente procedimiento utiliza la acción de la API CreateCollection para crear una colección del tipo SEARCH o TIMESERIES. Si no especifica ningún tipo de colección en la solicitud, se usa TIMESERIES de forma predeterminada. Para obtener más información acerca de estos tipos, consulte Elección de un tipo de colección. Para crear una colección de búsquedas vectoriales, consulte Trabajo con colecciones de búsqueda vectorial.

Si su colección está cifrada con un Clave propiedad de AWS, el kmsKeyArn es un auto en lugar de un ARN.

importante

Después de crear una colección, no podrá acceder a ella a menos que coincida con una política de acceso a los datos. Para obtener más información, consulte Control de acceso a los datos para Amazon OpenSearch sin servidor.

Creación de una colección
  1. Compruebe que ha creado las políticas necesarias que se describen en Antes de empezar.

  2. Ejecute el siguiente comando. En type, especifique SEARCH o TIMESERIES.

    aws opensearchserverless create-collection --name "collection name" --type collection type --description "description"

Crear una colección con un índice de enriquecimiento semántico automático

Utilice el siguiente procedimiento a fin de crear una nueva colección de OpenSearch sin servidor con un índice que esté configurado para el enriquecimiento semántico automático. El procedimiento utiliza la acción de la API CreateIndex de OpenSearch sin servidor.

Para crear una nueva colección con un índice configurado con el enriquecimiento semántico automático

Ejecute el siguiente comando para crear la colección y un índice.

aws opensearchserverless create-index \ --region Region ID \ --id collection name --index-name index name \ --index-schema \ 'mapping in json'

A continuación se muestra un ejemplo.

aws opensearchserverless create-index \ --region us-east-1 \ --id conversation_history --index-name conversation_history_index \ --index-schema \ '{ "mappings": { "properties": { "age": { "type": "integer" }, "name": { "type": "keyword" }, "user_description": { "type": "text" }, "conversation_history": { "type": "text", "semantic_enrichment": { "status": "ENABLED", // Specifies the sparse tokenizer for processing multi-lingual text "language_option": "MULTI-LINGUAL", // If embedding_field is provided, the semantic embedding field will be set to the given name rather than original field name + "_embedding" "embedding_field": "conversation_history_user_defined" } }, "book_title": { "type": "text", "semantic_enrichment": { // No embedding_field is provided, so the semantic embedding field is set to "book_title_embedding" "status": "ENABLED", "language_option": "ENGLISH" } }, "abstract": { "type": "text", "semantic_enrichment": { // If no language_option is provided, it will be set to English. // No embedding_field is provided, so the semantic embedding field is set to "abstract_embedding" "status": "ENABLED" } } } } }'