Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /
Servicios de terceros

Servicio AWS

Importante

Servicios de terceros y notificaciones push obsoletos

Los servicios de terceros y las notificaciones push en App Services han quedado obsoletos en favor de la creación de puntos finales HTTP que usan dependencias externas en funciones.

Webhooks se han renombrado a HTTPS Endpoints sin cambios en el comportamiento. Debe migrar los Webhooks existentes.

Los servicios existentes continuarán funcionando hasta el de septiembre 30 2025de.

Dado que los servicios de terceros y las notificaciones push ya no se utilizan, se han eliminado de forma predeterminada de la interfaz de usuario de App Services. Si necesita administrar un servicio de terceros o una notificación push existente, puede volver a agregar las configuraciones a la interfaz de usuario siguiendo estos pasos:

  • En la navegación izquierda, debajo del Manage sección, haga clic en App Settings.

  • Habilite el interruptor junto a Temporarily Re-Enable 3rd Party Services y luego guarde los cambios.

Amazon Web Services (AWS) Ofrece una amplia colección de servicios en la nube. Atlas App Services ofrece un servicio genérico de AWS que permite conectarse a muchos de estos servicios.

Deberá proporcionar valores para los siguientes parámetros cuando cree una interfaz de servicio de AWS:

<Service Name>/config.json
{
"name": "<Service Name>",
"type": "aws",
"config": {
"accessKeyId": <Access Key ID>,
"region": "us-east-1"
},
"secret_config": {
"secretAccessKey": "<Secret Name>"
}
}
Parameter
Descripción
Service Name
config.name

Un nombre único para el servicio.

Access Key ID
config.accessKeyId

The access key ID for an AWS IAM user. The user should have programmatic access and appropriate permissions for all AWS services that you plan to interact with.

Secret Access Key
secret_config.secretAccessKey

El nombre de un Secret que almacena una clave de acceso secreta para el usuario IAM cuyo ID se especifica en Access Key ID. Se puede encontrar este valor junto al ID de la clave de acceso cuando se crea un nuevo usuario IAM o se crea una nueva clave de acceso para un usuario IAM existente.

Tip

Cada servicio de AWS tiene diferentes acciones que puedes realizar en ese servicio. Servicios de aplicación utiliza los nombres de las acciones especificadas en el AWS SDK para Go para cada servicio.

Nota

aplicación Services utiliza los mismos nombres (y distinción entre mayúsculas y minúsculas) para los servicios y acciones de AWS que el AWS Go SDK.

Para cada servicio AWS compatible, aplicación Services admite cualquier acción que:

  1. Toma un único parámetro de entrada.

  2. Returns one of two objects: an output object, or an error.

Por ejemplo, el S3 El servicio incluye una acción PutObject. App Services admite esta acción porque acepta un único tipo de entrada PutObjectInput y devuelve PutObjectOutput o un error.

Debe especificar reglas para habilitar los servicios y acciones de AWS. Cada regla se aplica a una sola API de servicio, además de una o todas las acciones de ese servicio. Al igual que con otras reglas de servicio en App Services, una regla debe evaluarse como true para habilitar la acción.

Por ejemplo, la siguiente regla habilita todas las acciones en el servicio Kinesis:

Regla de AWS Kinesis.
haga clic para ampliar

Nota

El valor por defecto del campo When contiene sólo corchetes vacíos, lo que significa que la regla siempre se evaluará como true y, por lo tanto, todas las llamadas a la acción son válidas.

Esta regla también se puede expresar como la siguiente expresión de regla. Tenga en cuenta que en la actions matriz, el asterisco* () después del nombre del servicio indica que todas las acciones de ese servicio están habilitadas:

{
"name": "kinesis",
"actions": [
"kinesis:*"
]
}

Para cada acción de servicio, la regla que cree puede incluir cualquiera de las propiedades del objeto de entrada para esa acción como condición para validar la regla. La expansión %%args proporciona acceso a estas propiedades.

El S3 servicio incluye la acción PutObject, que toma un objeto de entrada de tipo PutObjectInput. Puede hacer referencia a cualquiera de las propiedades del PutObjectInput objeto en la expresión de una regla When con la %%args expansión.

Usando la propiedad Bucket del objeto PutObjectInput, puede crear una regla que habilite la acción PutObject en el servicio S3, pero la restrinja a una lista de buckets aprobados. En este ejemplo, usamos una constante definida por el usuario llamada myS3Buckets para la lista de nombres de buckets aprobados:

Regla de AWS S3
haga clic para ampliar

This can also be expressed as the following JSON:

{
"name": "s3",
"actions": [
"s3:PutObject"
],
"when": {
"%%args.Bucket": {
"$in": "%%values.myS3Buckets"
}
}
}

El S3 servicio incluye la acción GetObject, que toma un objeto de entrada de tipo GetObjectInput. Puede hacer referencia a cualquiera de las propiedades del GetObjectInput objeto en When la expresión de una %%args regla con la expansión.

In the following example, we create a rule that enables the GetObject action on a specific bucket called realmReadWritableBucket:

Regla de AWS S3
haga clic para ampliar

This can also be expressed as the following JSON:

{
"name": "s3",
"actions": [
"s3:GetObject"
],
"when": {
"%%args.Bucket": {
"$in": "realmReadWritableBucket"
}
}
}

Puede llamar a un servicio de AWS desde una función de Atlas y desde los SDK. Las siguientes secciones muestran cada uno de estos procesos.

Los siguientes ejemplos muestran cómo llamar a varios servicios de AWS desde una función Atlas. En cada ejemplo, se asume que el servicio ya se ha creado.

exports = async function() {
const s3 = context.services.get('MyAwsService').s3("us-east-1");
const result = await s3.PutObject({
"Bucket": "my-bucket",
"Key": "example",
"Body": "hello there"
});
console.log(EJSON.stringify(result));
return result;
};
exports = async function(arg) {
const s3 = context.services.get('MyAwsService').s3("us-east-1");
const result = await s3.GetObject({
"Bucket": "realmReadWritableBucket",
"Key": "coffee.jpeg"
});
console.log(EJSON.stringify(result));
return result;
};
exports = function(){
const s3 = context.services.get("MyAwsService").s3("us-east-1");
const presignedUrl = s3.PresignURL({
"Bucket": "my-s3-bucket-name",
"Key": "/some/path",
// HTTP method that is valid for this signed URL. Can use PUT for uploads, or GET for downloads.
"Method": "GET",
// Duration of the lifetime of the signed url, in milliseconds
"ExpirationMS": 30000,
})
return presignedUrl
};

Consulte la Referencia de API de S3 para obtener detalles de implementación.

Importante

Object Size Limitation

App Services supports a maximum file size of 4 Megabytes when working with AWS S3 objects.

exports = async function(event) {
const kinesis = context.services.get('MyAwsService').kinesis("us-east-1");
const result = await kinesis.PutRecord({
Data: JSON.stringify(event.fullDocument),
StreamName: "realmStream",
PartitionKey: "1"
});
console.log(EJSON.stringify(result));
return result;
};

Consulte la Referencia de API de Kinesis para obtener detalles de implementación.

exports = async function() {
const lambda = context.services.get('MyAwsService').lambda("us-east-1");
const result = await lambda.Invoke({
FunctionName: "myLambdaFunction",
Payload: context.user.id
});
console.log(result.Payload.text());
return EJSON.parse(result.Payload.text());
};

Consulte la Referencia de API de Lambda para obtener detalles de implementación.

exports = async function(){
const ses = context.services.get('MyAwsService').ses("us-east-1");
const result = await ses.SendEmail({
Source: "sender@example.com",
Destination: { ToAddresses: ["docs@mongodb.com"] },
Message: {
Body: {
Html: {
Charset: "UTF-8",
Data: `This is a message from user ${context.user.id}`
}
},
Subject: {
Charset: "UTF-8",
Data: "Test Email Please Ignore"
}
}
});
console.log(EJSON.stringify(result));
return result;
};

Consulte la Referencia de API de SES para obtener detalles de implementación.

Your App can connect to the following AWS services:

  • Athena

  • Batch

  • CloudWatch

  • Comprender

  • EC2

  • Firehose

  • Glacier

  • IoT

  • Kinesis

  • Lambda

  • Servicio de tiempo de ejecución de Lex

  • Aprendizaje automático

  • Mobile Analytics

  • Polly

  • RDS

  • Redshift

  • Rekognition

  • S3

  • SES

  • Step Functions (SFN)

  • SNS

  • SQS

  • Textr

Volver

Twilio.send()

En esta página