Docs Menu
Docs Home
/ /
Atlas App Services
/ /

Amazon Web Services Service [非推奨]

重要

サードパーティ サービスとプッシュ通知の廃止

Atlas App Services のサードパーティ サービスとプッシュ通知は非推奨となり、代わりに関数内の外部依存関係を使用する HTTP エンドポイントを作成できるようになりました。

Webhook はHTTPS endpointsに名前変更され、動作は変更されません。 既存の Webhook を移行する必要があります。

既存のサービスは、 30、2025 まで引き続き機能します。

サードパーティ サービスとプッシュ通知は非推奨になったため、App Services UI からデフォルトで削除されました。 既存のサードパーティ サービスまたはプッシュ通知を管理する必要がある場合は、次の操作を実行して構成を UI に追加できます。

  • 左側のナビゲーションの [ App Settings Manageセクションの下にある [] をクリックします。

  • Temporarily Re-Enable 3rd Party Servicesの横にあるトグル スイッチを有効にし、変更を保存します。

Amazon Web Services(Amazon Web Services ) は、クラウドベースのサービスの広範なコレクションを提供します。Atlas App Servicesは汎用のAmazon Web Servicesサービスを提供しており、これらのサービスの多くに接続できるようにしています。

Amazon Web Servicesサービス インターフェースを作成するときは、次のパラメータに値を指定する必要があります。

<Service Name><サービス名/config.json
{
"name": "<Service Name>",
"type": "aws",
"config": {
"accessKeyId": <Access Key ID>,
"region": "us-east-1"
},
"secret_config": {
"secretAccessKey": "<Secret Name>"
}
}
Parameter
説明
Service Name
config.name

サービスの一意の名前。

Access Key ID
config.accessKeyId

IAM ユーザーのアクセスキーID 。Amazon Web Servicesユーザーには、操作を予定するすべてのAmazon Web Servicesサービスに対するプログラムによるアクセスと適切な権限が必要です。

Secret Access Key
secret_config.secretAccessKey

Access Key IDで指定された ID を持つ IAM ユーザーのシークレット アクセス キーを保存するSecretの名前。 この値は、新しい IAM ユーザーを作成するか、既存の IAM ユーザーの新しいアクセス キーを作成するときに、アクセス キー ID の横にあります。

Tip

各Amazon Web Servicesサービスには、そのサービスで実行できるアクションが異なります。 App Services は、 用のAmazon Web Services SDKGo で 指定されたアクション名を使用します (各サービスの場合

注意

App ServicesAmazon Web Services は、Amazon Web ServicesGo SDK と同じ名前(およびケース)を のサービスとアクションに使用します。

サポートされているAmazon Web Servicesサービスごとに、App Services は次のアクションをサポートします。

  1. 入力パラメータを 1 つ受け取ります。

  2. 出力オブジェクト、またはエラーの 2 つのオブジェクトのいずれかを返します。

たとえば、S3 サービスには putObject が含まれています アクション。App Services は putObjectInport の単一の入力タイプを受け取るため、このアクションをサポートします 、または putObjectOutup を返します または エラー。

Amazon Web Servicesのサービスとアクションを有効にするには、ルールを指定する必要があります。 各ルールは、1 つのサービス API と、そのサービス上の 1 つまたはすべてのアクションに適用されます。 Atlas App Services の他のサービス ルールと同様に、アクションを有効にするには、ルールがtrueと評価される必要があります。

たとえば、次のルールは Kinesis サービスに対するすべてのアクションを有効にします。

Amazon Web Services Kinesisルール。
クリックして拡大します

注意

Whenフィールドのデフォルト値には空の括弧のみが含まれているため、ルールは常にtrueと評価され、アクションの呼び出しはすべて有効になります。

このルールは、次のルール式として表現することもできます。 actionsの配列では、サービス名の後のアスタリスク( * )は、そのサービスのすべてのアクションが有効になっていることを示していることに注意してください。

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

作成するルールには、各サービスアクションごとに、そのアクションの入力オブジェクトのプロパティを検証するための条件として含めることができます。 %%args展開では、これらのプロパティにアクセスできます。

S3サービスには putObject が含まれます アクションは、 putObjectIn put のタイプの入力オブジェクトを受け取ります 。%%args展開を使用して、ルールのWhen式でPutObjectInputオブジェクトのプロパティを参照できます。

PutObjectInputオブジェクトのBucketプロパティを使用して、S3 サービスでPutObjectアクションを有効にするが、承認されたバケットのリストにアクションを制限するルールを作成できます。 この例では、承認されたバケット名のリストにmyS3Bucketsというユーザー定義の定数を使用しています。

Amazon Web Services S3 ルール
クリックして拡大します

これは、次の JSON として表現することもできます。

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

S3サービスには GetObject アクション( GetObjectIn put のタイプの入力オブジェクトを受け取ります) 。%%args展開を使用して、ルールのWhen式でGetObjectInputオブジェクトのプロパティを参照できます。

次の例では、 realmReadWritableBucketという特定のバケットでGetObjectアクションを有効にするルールを作成します。

Amazon Web Services S3 ルール
クリックして拡大します

これは、次の JSON として表現することもできます。

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

および SDK Amazon Web Servicesから サービスを呼び出すことができます。Atlas Function次のセクションでは、これらのそれぞれのプロセスを示します。

次の例は、 内からさまざまなAmazon Web Services サービスを呼び出す方法を示しています。Atlas Function各例では、名前付きサービスがすでに作成されていることを前提としています。

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
};

S3 API リファレンスを参照 実装の詳細については、「 」を参照してください。

重要

オブジェクト サイズの制限

App Services は、 Amazon Web Services S3 オブジェクトを操作する場合、最大ファイルサイズ 4 MB をサポートします。

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;
};

Kinesis API リファレンス を参照してください 実装の詳細については、「 」を参照してください。

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());
};

Lambda API リファレンス を参照してください 実装の詳細については、「 」を参照してください。

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;
};

SES API リファレンス を参照してください 実装の詳細については、「 」を参照してください。

アプリは次のAmazon Web Servicesサービスに接続できます。

  • Atlas

  • バッチ

  • Cloudwatch

  • 理解する

  • EC2

  • Firehose

  • グレーシャー

  • IoT

  • Kinesis

  • Lambda

  • Lex ランタイム サービス

  • 機械学習

  • モバイル分析

  • ポリゴン

  • RDS

  • Redshift

  • Rekognition

  • S3

  • SES

  • ステップ関数(SFN)

  • ソーシャル

  • SQS

  • テキスト

戻る

Twilio.send()

項目一覧