Docs Menu
Docs Home
/ /
Servicios de terceros

Reemplazar servicios con módulos npm

Debe migrar las integraciones de servicios de terceros obsoletas para utilizar las bibliotecas oficiales correspondientes disponibles en npmLas secciones posteriores de esta página contienen detalles y ejemplos para cada servicio.

Para migrar desde un servicio obsoleto:

  1. Agregue una biblioteca para el servicio desde npm a tu aplicación.

  2. Importa la librería en tus funciones. Reemplaza cualquier llamada a las acciones de servicios de funcionalidad incorporada con llamadas a los métodos correspondientes en la librería importada.

  3. Si el servicio tiene webhooks, conviértalos en puntos finales HTTPS.

Reemplace las solicitudes HTTP enviadas a través de un cliente HTTP Service por llamadas a una librería HTTP como node-fetch o axios.

npm i node-fetch@^2

Importante

Atlas App Services no admite la versión3 de node-fetch. Utilice la versión2 en su lugar.

Antes de
exports = async function() {
const http = context.services.get("myHttp");
const response = await http.get({
url: "https://www.example.com",
headers: { "Content-Type": [ "application/json" ] }
})
return response.body.text()
}
Después (obtención de nodo)
exports = async function() {
const fetch = require("node-fetch"); // require calls must be in exports function
const response = await fetch("https://www.example.com", {
method: "GET",
headers: { "Content-Type": "application/json" }
})
return response.text()
}
npm i axios
Antes de
exports = async function() {
const http = context.services.get("myHttp");
const response = await http.get({
url: "https://www.example.com",
headers: { "Content-Type": [ "application/json" ] }
})
return response.body.text()
}
Después (axios)
exports = async function() {
const axios = require("axios"); // require calls must be in exports function
const response = await axios.get("https://www.example.com", {
headers: { "Content-Type": "application/json" }
})
return response.data
}

Reemplace las llamadas a través de un cliente de servicio Twilio con llamadas a la biblioteca de ayuda de nodo Twilio oficial.

npm i twilio

Para autenticar las solicitudes de Twilio, guarde el SID de su cuenta y el token de autenticación como valores. Podrá acceder a ellos desde las funciones y pasarlos al SDK.

Antes de
exports = async function() {
const twilio = context.services.get("myTwilio");
twilio.send({
to: "+15558675309",
from: "+15551234567",
body: "Hello from App Services!",
});
}
Después de
exports = async function() {
// Note: require calls must be in the exported function
const twilio = require('twilio')(
// Your Account SID and Auth Token from https://www.twilio.com/console
// Specify the same Twilio credentials as the service configuration
context.values.get("TwilioAccountSID"),
context.values.get("TwilioAuthToken"),
)
await twilio.messages.create({
to: "+15558675309",
from: "+15551234567",
body: "Hello from App Services!",
})
}

Reemplace las llamadas a través de un cliente de servicio de AWS con llamadas al SDK de JavaScript oficial de AWS.

npm i aws-sdk

Importante

App Services aún no es compatible con la versión 3 del SDK de AWS. Utilice la versión 2 del SDK para reemplazar el servicio de AWS obsoleto en sus funciones.

Para autenticar solicitudes de AWS, almacena tu ID de clave de acceso y tu clave de acceso secreta como valores. Luego puedes acceder a ellos dentro de las funciones y pasarlos al SDK.

Antes de
exports = async function() {
const s3 = context.services.get("myAWS").s3("us-east-1");
const putResult = await s3.PutObject({
Bucket: "bucketName",
Key: "keyName",
Body: EJSON.stringify({ hello: "world" }),
});
const getResult = await s3.GetObject({
Bucket: "bucketName",
Key: "keyName",
});
}
Después de
exports = async function() {
const S3 = require('aws-sdk/clients/s3'); // require calls must be in exports function
const s3 = new S3({
accessKeyId: context.values.get("awsAccessKeyId"),
secretAccessKey: context.values.get("awsSecretAccessKey"),
region: "us-east-1",
});
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property
const putResult = await s3.putObject({
Bucket: "bucketName",
Key: "keyName",
Body: EJSON.stringify({ hello: "world" }),
}).promise();
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property
const getResult = await s3.getObject({
Bucket: "bucketName",
Key: "keyName",
}).promise();
}
Antes de
exports = async function() {
const kinesis = context.services.get("myAWS").kinesis("us-east-1");
const putResult = await kinesis.PutRecord({
Data: EJSON.stringify({ hello: "world" }),
StreamName: "myStream",
PartitionKey: "myPartition",
});
}
Después de
exports = async function() {
const Kinesis = require('aws-sdk/clients/kinesis'); // require calls must be in exports function
const kinesis = new Kinesis({
accessKeyId: context.values.get("awsAccessKeyId"),
secretAccessKey: context.values.get("awsSecretAccessKey"),
region: "us-east-1",
});
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Kinesis.html#putRecord-property
const putResult = await kinesis.putRecord({
Data: EJSON.stringify({ hello: "world" }),
StreamName: "myStream",
PartitionKey: "myPartition",
}).promise();
}
Antes de
exports = async function() {
const lambda = context.services.get('MyAwsService').lambda("us-east-1");
const invokeResult = await lambda.Invoke({
FunctionName: "myLambdaFunction",
Payload: EJSON.stringify({ hello: "world" }),
});
};
Después de
exports = async function() {
const Lambda = require('aws-sdk/clients/lambda'); // require calls must be in exports function
const lambda = new Lambda({
accessKeyId: context.values.get("awsAccessKeyId"),
secretAccessKey: context.values.get("awsSecretAccessKey"),
region: "us-east-1",
});
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html#invoke-property
const invokeResult = await lambda.invoke({
FunctionName: "myLambdaFunction",
Payload: EJSON.stringify({ hello: "world" }),
}).promise();
}
Antes de
exports = async function() {
const ses = context.services.get('MyAwsService').ses("us-east-1");
const sendResult = await ses.SendEmail({
Source: "sender@example.com",
Destination: { ToAddresses: ["receiver@example.com"] },
Message: {
Body: {
Html: {
Charset: "UTF-8",
Data: `This is a message from user ${context.user.id} sent through AWS SES`
}
},
Subject: {
Charset: "UTF-8",
Data: "Test Email Please Ignore"
},
},
});
};
Después de
exports = async function() {
const SES = require('aws-sdk/clients/ses'); // require calls must be in exports function
const ses = new SES({
accessKeyId: context.values.get("awsAccessKeyId"),
secretAccessKey: context.values.get("awsSecretAccessKey"),
region: "us-east-1",
});
// https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SES.html#sendEmail-property
const sendResult = await ses.sendEmail({
Source: "sender@example.com",
Destination: { ToAddresses: ["receiver@example.com"] },
Message: {
Body: {
Html: {
Charset: "UTF-8",
Data: `This is a message from user ${context.user.id} sent through AWS SES`
}
},
Subject: {
Charset: "UTF-8",
Data: "Test Email Please Ignore"
},
},
}).promise();
}

Volver

Servicios de terceros

En esta página