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 (AWS) は、クラウドベース サービスの広範なコレクションを提供します。 Atlas App Services は、これらのサービスの多くに接続できる汎用のAWSサービスを提供します。

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 SDK for Goで指定されたアクション名を使用します。

注意

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

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

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

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

例、S3 サービスには putObjectアクションが含まれています。 App Services は、 putObjectIn put の単一の入力タイプを受け取り、 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サービスには putObjectIn put のタイプの入力オブジェクトを取得する putObjectアクションが含まれています。展開を使用して、ルールのPutObjectInput When式で%%args オブジェクトのプロパティを参照できます。

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

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

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

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

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

次の例では、 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()

項目一覧