SFDCのデータを抽出してAWSのS3にCSVを出力する(その1)

SFDCでたまたま、必要があったので色々と調べてみました。「普通のやり方ではCSV出力をバッチでできない」とかいうことだそうなので、データローダを使ったやり方とかもあるみたいですが要件にそぐわないので、少し格闘しました。
バッチでAWSのS3CSVを出力したいというのがそもそもの与件です。

◆大枠の手順

1.AWSでS3を設定する
 1)S3バケット作成
 2)IAMポリシー設定
 3)IAMユーザ追加
2.SFDC設定
 1)環境変数関連設定
 2)パラメータ入力
 3)リモートサイト許可
3.プログラム作成(単体レベル)
 1)環境変数抽出箇所
 2)SOQLを使用してデータ抽出
 3)S3にCSVファイルをアップロード
4.バッチ設定


◆手順

1.AWSでS3を設定する

1)S3バケット作成

・AWSの管理コンソールでS3設定を開くバケットを選択して[バケットの作成]をクリックする。









・[バケット名]を入力し[作成]ボタンをクリックする。










2)IAMポリシー設定

・AWSの管理コンソールでIAM設定を開く[ポリシー]を選択し[ポリシーの作成]ボタンをクリックする。









・ポリシーの作成の箇所で[JSON]を選択する。真ん中の箇所にJSONを入力する
[ポリシーの確認]をクリック










参考:JSON
----
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Action": "*",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::bucketname",
                "arn:aws:s3:::bucketname/*"
            ]
        }
    ]
}
----

・[名前]と[説明]を入力し[ポリシーの作成]をクリックする。










3)IAMユーザ追加

・ポリシー作成完了後[ユーザ]をクリックする。










・[ユーザを追加]をクリック












・[ユーザ名]を入力し[プログラムによるアクセス]を選択して[次ステップ:アクセス権限]
をクリックする。











・「アクセス許可の設定」で[既存ポリシーを直接アタッチ]をクリックする。
[ポリシーのフィルタ]に2)で設定したポリシー名を入力し検索する。
[ポリシー名]の横にチェックを付けて[次のステップ:タグ]ボタンをクリックする。











・「タグの追加」で[次のステップ:確認]ボタンをクリックする











・「確認」となるので[ユーザの作成]をクリックする。











・登録完了画面となるので[csvのダウンロード]をクリックしてファイルを保存後に、
[閉じる]ボタンをクリックしてIAMユーザ追加を完了させる。











◆参考サイト

・S3設定
 https://dev.classmethod.jp/etc/specify_s3_folder_iam_cyberduck/
 http://webfood.info/s3-bucket-policy-iam-user/

コメント

このブログの人気の投稿

証券外務員1種勉強(計算式暗記用メモ)

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

マクロ経済学(IS-LM分析)